Mis*_*Guy 2 sql t-sql sql-server select sql-order-by
我想知道SQL Server中是否有一种方法可以对包含varchar列中数字的表进行排序.我把这个号码(在我的案例中为House Numbers)投入Int并使用
order by cast([sano]%2 as int), cast([sano] as Int)
Run Code Online (Sandbox Code Playgroud)
实际上创造了2,4,6,8 ......,1,3,5,7,9等的输出.但我需要得到像2,4,6,8..9,7,5,3,1这样的输出,所以即使是asc然后奇怪的是desc.
一个技巧是使用case表达式将奇数乘以-1,从而首先以升序获得具有最大绝对值的表达式:
ORDER BY CAST([sano] % 2 AS INT),
CAST([sano] AS INT) * CASE CAST([sano] % 2 AS INT) WHEN 0 THEN 1 ELSE -1 END
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
264 次 |
| 最近记录: |