【发布时间】:2015-10-29 14:28:17
【问题描述】:
所以我在这里查看了一些不同的示例,但它们似乎都不适合我。
这是我需要排序的示例:
Alpha #1
Beta #3
Charlie #2
Alpha #2
Charlie #1
Beta #2
Beta #1
Alpha #10
排序后我想要
Alpha #1
Alpha #2
Alpha #10
Beta #1
Beta #2
Beta #3
Charlie #1
Charlie #2
但是,当我使用以下查询时,Alpha #10 不遵循所需的规则。
ORDER BY
Case When IsNumeric(LEFT(MachineName,1)) = 1
Then CASE When IsNumeric(MachineName) = 1
Then Right(Replicate('0',20) + MachineName + '0', 20)
Else Right(Replicate('0',20) + MachineName, 20)
END
When IsNumeric(LEFT(MachineName,1)) = 0
Then Left(MachineName + Replicate('',21), 20)
End
我得到了这个:
Alpha #1
Alpha #10
Alpha #2
...
我是 LEFT 和 RIGHT 的新手,所以我可能做错了什么,因此非常感谢任何指导!
【问题讨论】:
标签: sql sql-server alphanumeric