sql-server - 按包含连字符的值对列进行排序,并在连字符后应用排序
问题描述
我有一个类型为 (varchar) 的列,其中包含一个连字符。连字符后的数字代表一年。我需要先按年份排序。
11-18
10-18
11-16
12-17
10-19
应该这样排序:
11-16
12-17
10-18
11-18
10-19
解决方案
试试这个
DECLARE @t AS TABLE(CODE VARCHAR(10));
INSERT INTO @T
SELECT '11-18'
UNION ALL
SELECT '10-18'
UNION ALL
SELECT '11-16'
UNION ALL
SELECT '12-17'
UNION ALL
SELECT '10-19';
SELECT *
FROM @t
ORDER BY SUBSTRING(CODE, 4, 2),
SUBSTRING(CODE, 1, 2);
推荐阅读
- .net - 本地计算机上的 windows Service 服务启动然后停止
- wordpress - .htaccess 在 bitnami wordpress 中的位置
- mysql - 如何直接在 MySQL Workbench 中编辑值?
- tcl - 在 TCL 语言中理解正则表达式有困难
- javascript - 使用graphql查询检查反应js中的空对象
- php - 如何每天自动运行php文件
- javascript - 未捕获(承诺中)错误:使用 Laravel 请求失败,状态码 404
- javascript - 在 JavaScript 中根据 id 属性合并两个对象
- php - 我有将验证码图像从 captcha.php 设置到 register.php 中的 src 的 ajax 问题
- android - 在 backpress 上的两个片段之间导航