[英]How to sort a column in ascending order where the column contains varchar and numeric, using SQL?
實際上我的列在varchar中,它有數字和varchar類型的數據,我只想先對數字進行排序,然后是varchar類型。
我提到並得到了這個:
SELECT
...
ORDER BY
CASE
WHEN ISNUMERIC(value) = 1 THEN CONVERT(INT, value)
ELSE 9999999 -- or something huge
END,
value
它有效,但為什么我們需要在這里使用ELSE 9999999
,而不是我們可以取代......?
任何解決方案......!
你可以使用:
SELECT *
FROM tab
ORDER BY IIF(TRY_CAST(val AS INT) IS NULL, 1, 0),TRY_CAST(val AS INT);
您可以嘗試將其作為替代解決方案。
SELECT
...
ORDER BY
ISNUMERIC(value) DESC
, CASE
WHEN ISNUMERIC(value) = 1 THEN CONVERT(INT, value)
END
,value
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.