如何在SQL Server中对包含单词和数字的VARCHAR列进行排序?
我有一个包含字母和数字的varchar(100)字段。
这些值通常是汽车1,汽车10,汽车100,汽车20的形式。但是这些值可以在数字之前有任何字。有没有办法以数字方式对这些值进行排序,以便汽车2将在10号车前出现?谢谢。
没有找到相关结果
已邀请:
6 个回复
浮凰量
拆分为varchar
和int
。 模式可以像
一样简单,您可以使用
或
与
一起基于
将其拆分。 然后您可以按两列排序。 这是一个有效的例子
豆兢
氮顺
娜拐赐巫潭
SUBSTRING(NAME,1,CHARINDEX('',NAME,1)) - 空格前的文字 CAST(SUBSTRING(NAME,CHARINDEX('',NAME,1)+1,100)AS INT) - 用于转换为int的空格后的文本以便正确排序
舞备联
您可以将其包装在UDF中以获得理智:
谷靛
匹配最后一个字符和
匹配任意数量的字符。因此,只要数字位于列值的末尾,您就可以轻松地从列中提取数值(StackOverflow不会让我将单词UNION放在帖子中 - 用UNION替换UUU):