有沒有本地SQL方式來說ORDER BY「在WHERE子句中出現的順序」。
你可以做這樣的事情是什麼SlimsGhost證明或者你可以使用一個臨時表是這樣的:
-- your table
DECLARE @Table TABLE(LoanNumber bigint);
INSERT @Table VALUES ('987654321'),('741852963'),('123456789'),('1234'),('123456789');
-- a "filter table"
DECLARE @tmp TABLE (ordinal tinyint identity, LoanNumber bigint);
INSERT @tmp (LoanNumber) VALUES ('123456789'),('987654321'),('741852963');
-- Using the filter table
SELECT LoanNumber
FROM
(
SELECT ordinal, t.LoanNumber
FROM @Table t
JOIN @tmp x ON t.LoanNumber = x.LoanNumber
GROUP BY ordinal, t.LoanNumber
) ln
ORDER BY ordinal;
如果它只是那些三個數字,你可以嘗試通過一個case語句添加列。像'Case'這樣的'123 ..',然後是1'987 ...',然後是2 ...作爲順序。然後做一個外部選擇語句,並按該新列進行排序。 – wbrugato
按您希望排序的順序將您的值插入臨時表或@table變量。在臨時表變量上有一個標識列。內部連接到這個臨時表,並按照標識列排序 –