一個nvarchar場我使用下面的查詢的SQL命令字段訂購在SQL
Select Distinct x From t where c=1 order by x asc
X是一個nvarchar列,但目前列有以下值
無論如何訂購的價值是這樣的:
沒有獎,1,2,3,4,5,6,7,8,9,10
一個nvarchar場我使用下面的查詢的SQL命令字段訂購在SQL
Select Distinct x From t where c=1 order by x asc
X是一個nvarchar列,但目前列有以下值
無論如何訂購的價值是這樣的:
沒有獎,1,2,3,4,5,6,7,8,9,10
在SQL Server 2012+可以使用try_cast
,但你將不得不改變distinct
爲group by
:
SELECT x
FROM t
WHERE c=1
GROUP BY x
ORDER BY Try_Cast(x as int)
對於老版本,你可以使用union:
SELECT x
FROM
(
SELECT x, CAST(x as int) as sort
FROM t
WHERE c = 1
AND ISNUMERIC(x) = 1
UNION
SELECT x, NULL
FROM t
WHERE c = 1
AND ISNUMERIC(x) = 0
) as distinctX
ORDER BY sort
什麼你正在與rdbms合作? –
rdbms這是什麼? – Sora
標記您正在使用的SQL風格... – Sankar