实际上我的列在varchar中,并且它有数字和varchar类型的数据,我只想先对数字进行排序,然后是varchar类型。
我提到并得到了这个:
SELECT
...
ORDER BY
CASE
WHEN ISNUMERIC(value) = 1 THEN CONVERT(INT, value)
ELSE 9999999 -- or something huge
END,
value
它有效,但为什么我们需要在这里使用ELSE 9999999
,而不是我们可以替换的内容......?
任何解决方案......!
答案 0 :(得分:2)
答案 1 :(得分:1)
您可以尝试将其作为替代解决方案。
SELECT
...
ORDER BY
ISNUMERIC(value) DESC
, CASE
WHEN ISNUMERIC(value) = 1 THEN CONVERT(INT, value)
END
,value