如何以自然顺序比较sql中的两个字符串

时间:2014-08-01 18:13:36

标签: sql-server tsql

我有一个简单的问题。

我需要按自然顺序比较SQL中的两个字符串。所以,如果我有像'20091210'和'20101213'这样的字符串,那么后者会更大。该字符串也可能包含字母字符,因此'Y4550'将大于'Y4500'。我尝试使用CHECKSUM系统函数将字符串转换为哈希数字,但这并没有给我一个关于自然顺序的数字。

除了制作CLR功能外,你知道我能用什么吗?

1 个答案:

答案 0 :(得分:0)

如果我正确理解你的问题,你想比较同一行中的两个字符串列,或者一个带变量的列。为此,您只需使用<>运算符:

SELECT * FROM Users WHERE Username > 'Tom'

这将返回其用户名在“Tom。”之后按字母顺序排列的用户。

如果我们谈论的是多条记录,ORDER BY就可以解决问题:

SELECT * FROM Users ORDER BY Username

这将按用户名按字母顺序升序对用户进行排序。