SQL中的自定义排序

时间:2014-05-13 08:54:44

标签: sql tsql

我需要为我的表实现自定义排序。例如,我有一个名为“TestTest”的表,其值为a, d01, d04, d02, b。我需要选择数据并对它们进行排序,以便使用“d”的值为第一个,其余值将按字母数字排序。结果将是d01,d02,d03,a,b

创建和插入数据的脚本:

CREATE TABLE TestTest(
Name varchar(200)
)
DELETE FROM TestTest

INSERT INTO TestTest( Name )
VALUES( 'a' )

INSERT INTO TestTest( Name )
VALUES( 'd01');

INSERT INTO TestTest( Name )
VALUES( 'd04');

INSERT INTO TestTest( Name )
VALUES( 'd02');

INSERT INTO TestTest( Name )
VALUES( 'b' );

任何帮助的Thx;)

3 个答案:

答案 0 :(得分:4)

Select *
From TestTest
Order By CASE WHEN LEFT(Name,1)='d' THEN 1 ELSE 2 END,Name

SQL Fiddle Demo

答案 1 :(得分:1)

快速消息:

Select * 
from TestTest
order by case when Name like 'd%' then 'aaaaa'+Name else Name end

答案 2 :(得分:1)

select * from TestTest order by case when Name='d01' then 1
                                            when Name='d02' then 2
                                            when Name ='d04' then 3
                                            end  desc