In SQL, ist es möglich, eine Abfrage durch eine Zeichenfolge statt aufsteigend/absteigend wie folgt zu bestellen?Sortieren nach SQL mit einer Zeichenfolge
Select * From people ORDER BY names (john, steve, bob, bill)
In SQL, ist es möglich, eine Abfrage durch eine Zeichenfolge statt aufsteigend/absteigend wie folgt zu bestellen?Sortieren nach SQL mit einer Zeichenfolge
Select * From people ORDER BY names (john, steve, bob, bill)
Im Standard-SQL, müssen Sie eine case
Anweisung
Select *
From people
ORDER BY (case when names = 'john' then 1
when names = 'steve' then 2
when names = 'bob' then 3
when names = 'bill' then 4
else 5
);
Einige SQL-Motoren Verknüpfungen zu diesen haben, aber Sie erwähnen nicht, welche Datenbank Sie verwenden.
Zum Beispiel in MySQL können Sie tun:
order by field(names, 'john', 'steve', 'bob', 'bill');
Ein anderer Ansatz, verwenden charIndex, dh
ORDER BY CharIndex('|'+names+'|','|john|steve|bob|bill|')
Charindex wird die Position des gefundenen Namen zurückgeben, die früher in der großen Liste es ist gefunden, die niedrigere Zahl zurückgegeben von charIndex
würde dies funktionieren, wenn zwei Leute John genannt wurden? –
Was ist passiert, als Sie es versucht haben? –
@ user3208629. . . Ja, das würde funktionieren, wenn zwei Leute "John" heißen würden. Beide würden zuerst in der Liste erscheinen. –