TSQL中的自定义排序

TSQL中的自定义排序,sql,tsql,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

我需要为我的表实现自定义订购。例如,我有一个名为“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' );
谢谢您的帮助;)

快速解决:

Select * 
from TestTest
order by case when Name like 'd%' then 'aaaaa'+Name else Name end
快速反应:

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


此问题可能是您的起点此问题可能是您的起点此问题将给出“a”和“b”的随机解此问题将给出“a”和“b”的随机解
Select *
From TestTest
Order By CASE WHEN LEFT(Name,1)='d' THEN 1 ELSE 2 END,Name