SELECT Code, Value FROM dbo.Sample
Code Value
Alpha Pig
Beta Horse
Charlie Dog
Delta Cat
Echo Fish
我想通過指定代碼列表基於在中指定的順序上添加一個順序列和排序列表條款。
SELECT Code, Value FROM dbo.Sample
WHERE Code in ('Beta', 'Echo', 'Alpha')
我可以在頂部聲明一個變量來指定代碼,如果更容易。
的關鍵是,我想根據我在指定的順序上添加行號
輸出:
Row Code Value
1 Beta Horse
2 Echo Fish
3 Alpha Pig
編輯:我意識到以後,我的代碼是所有這些都是固定的長度,這對於如何完成它們有很大的不同。我下面標記爲正確的答案,但我的解決方法是使用逗號分隔值的字符串:
DECLARE @CodeList TABLE (Seq int, Code nchar(3))
DECLARE @CodeSequence varchar(255)
DECLARE @ThisCode char(3)
DECLARE @Codes int
SET @Codes = 0
-- string of comma-separated codes
SET @CodeSequence = 'ZZZ,ABC,FGH,YYY,BBB,CCC'
----loop through and create index and populate @CodeList
WHILE @Codes*4 < LEN(@CodeSequence)
BEGIN
SET @ThisCode = SUBSTRING(@CodeSequence,@Codes*4+1,3)
SET @Codes = @Codes + 1
INSERT @CodeList (Seq, Code) VALUES (@Codes, @ThisCode)
END
SELECT Seq, Code from @CodeList
是選擇不一定會產生那些值訂單w只要單詞列表中的單詞沒有任何子匹配,就沒有ORDER BY – 2013-03-02 01:20:01