Da Sie durch mehrere Werte in einer nicht-sequenziellen Reihenfolge bestellen möchten, ist, dass sie nicht numerisch, um noch würden sie richtig, um als VARCHAR bestellt werden , müssen Sie numerische Werte auf sie anwenden. Hier ist, wie Sie das tun können.
if object_id('tempdb..#temp') is not null drop table #temp
create table #temp (phone varchar(20))
insert into #temp (phone) values
('255769016082'),
('255742594724'),
('255753299742'),
('255759502732'),
('255753839708'),
('257538312333')
SELECT *
FROM #temp
WHERE phone in
(
'255769016082',
'255742594724',
'255753299742',
'255759502732',
'255753839708'
)
ORDER BY
CASE
WHEN phone = '255769016082' THEN 1
WHEN phone = '255742594724' THEN 2
WHEN phone = '255753299742' THEN 3
WHEN phone = '255759502732' THEN 4
WHEN phone = '255753839708' THEN 5
END
In Zukunft, wenn Sie auf nicht-numerischen Felder sortieren, müssen Sie vertraut sein, wie SQL Server diese abwickelt.
Betrachten Sie diese
if object_id('tempdb..#char') is not null drop table #char
create table #char(stringField varchar(6))
insert into #char (stringField) values
('a'),
('A'),
('b'),
('B'),
('AB'),
('aB'),
('ab'),
('Ab'),
('ba'),
('Ba'),
('bA'),
('BA')
select * from #char order by stringField asc
select * from #char order by stringField desc
So? Wo ist die Reihenfolge nach Aussage in Ihrer Auswahl? Wie möchten Sie sie bestellen? Fügen Sie bitte einige Informationen hinzu. –
Hallo Maxim, ich habe die Bestellung nicht aufgegeben, da ich nicht die richtige Aussage für meine Abfrage kenne. Wie auch immer ich probierte Order by (Column_Name) Desc oder Asc, und es wurde erfolgreich ausgeführt. Aber meine Sorge ist, das Ergebnis in der Reihenfolge anzuordnen, die ich in SQL-Anweisung aufliste. – gngadada