0

こんにちは、「 NumberName」というフィールド名にこのような値があります

AB1
CD2
XH506
PQ104
PZ77

私が試したこれまでのところ、これを注文しようとしています:

select * from view_name where NumberName='Something' 
order by RIGHT('0000' + SUBSTRING(NumberName, ISNULL(NULLIF(PATINDEX('%[0-9]%',NumberName), 0), 
LEN(NumberName)+1), LEN(NumberName)), 4)

order by LEN(NumberName),NumberName

これを達成する方法..?

4

3 に答える 3

1

おそらく、私はあなたの質問を完全には理解していませんでした。しかしORDER BY NumberName、値を正しくソートします。

クエリ:

DECLARE @temp TABLE(NumberName NVARCHAR(50))

INSERT INTO @temp (NumberName)
VALUES ('AB1'),('CD2'),('XH506'),('PQ104'),('PZ77')

SELECT *
FROM @temp
ORDER BY NumberName

出力:

NumberName
----------
AB1
CD2
PQ104
PZ77
XH506
于 2013-05-27T09:23:53.973 に答える
1
select * from yourtable
order by LEFT(columnname,1)
于 2013-05-27T09:00:36.130 に答える