我有一个SQL Server列,其中包含以下值:
PPPX-31
CDGH-3
CDHUI-2
DFGTT-20
CUIT-18
AXDDX-32
如何根据给定列的行中的最后一位数来订购?
问候 普拉萨德
答案 0 :(得分:0)
试试这个:
SELECT * FROM MyTable
ORDER BY RIGHT(MyColumn, 1)
表示最后一个字符或:
SELECT * FROM MyTable
ORDER BY REVERSE(MyColumn)
按反向字符串排序。
答案 1 :(得分:0)
假设-
为数字后,字符串和字符串中只有一个-
。
SELECT *
FROM myTable
ORDER BY SUBSTRING(YourCol, CHARINDEX('-',YourCol) + 1, LEN(YourCol))
如果您需要数字排序,请将convert()
字符串加入INT
SELECT *
FROM myTable
ORDER BY CONVERT(INT,
SUBSTRING(YourCol, CHARINDEX('-',YourCol) + 1, LEN(YourCol)))
<强> SQL Fiddle Demo 强>
结果(数字排序):
| YOURCOL |
|----------|
| CDHUI-2 |
| CDGH-3 |
| CUIT-18 |
| DFGTT-20 |
| PPPX-31 |
| AXDDX-32 |
答案 2 :(得分:0)
由于行包含使用以下查询解决的多个连字符
SELECT * FROM MyTable 按CONCON的顺序(INT,RIGHT(MyColumn,CHARINDEX(&#39; - &#39;,REVERSE(MyColumn)+&#39; - &#39;) - 1))