如何在 SQL Server 2000 中正确排序字母数字
MS SQL Server 2000
我在表 A 中有一个名为“名称”的列。 我希望对名称字段进行排序。 许多(但不是全部)名称记录都以 KL 开头,后跟数字(KL 1234、KL 2、KL 323 等)。
表 A
姓名
能力
太棒了
吉隆坡2号
吉隆坡323
吉隆坡 1234
Zebra
如果我使用
Select Name from A
Order by Name
我就会
Able
太棒了
吉隆坡 1234
吉隆坡2号
吉隆坡323
斑马
我想要
Able
太棒了
吉隆坡2号
吉隆坡323
吉隆坡 1234
Zebra
如果它们都以 KL 开头,我可以使用,
Select Name from A
Order by cast(replace(name, 'KL', '') as big int)
但是对于不以 KL 开头的值,这会生成“无法将名称转换为大整数”错误,
感谢您的帮助。
MS SQL Server 2000
I have a column in Table A called Name. I wish to sort the Name field. Many but not all of the records for Name start will KL and are followed by a number (KL 1234, KL 2, KL 323, etc).
Table A
Name
Able
Bravo
KL 2
KL 323
KL 1234
Zebra
If I use
Select Name from A
Order by Name
I get
Able
Bravo
KL 1234
KL 2
KL 323
Zebra
I want
Able
Bravo
KL 2
KL 323
KL 1234
Zebra
If they all started with KL I could use
Select Name from A
Order by cast(replace(name, 'KL', '') as big int)
but this generates an "unble to cast name as big int" error for values that do not start with KL
Thanks for any help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
尝试这个:
Try this:
评论后更新了错误的关闭)
updated wrong closing ) after comment