我需要拉出包含最高值的记录,特别是我只需要该字段的值。问题是列是nvarchar格式,包含数字和特殊字符的混合。以下只是一个例子:
PK | Column 2 (nvarchar)
-------------------
1 | .1.1.
2 | .10.1.1
3 | .5.1.7
4 | .4.1.
9 | .10.1.2
15 | .5.1.4
基本上,由于自然排序,第2列中的项目按字符串排序。因此,不是将包含“.10.1.2”的行的PK返回为最高值,而是获取包含“.5.1.7”的行的PK。
我试图写一些函数来做到这一点,但看起来我写的东西看起来比它应该更复杂。任何人都有简单或复杂的功能是唯一的方法吗?
我想说清楚我正在尝试获取包含最高Column 2值的记录的PK。
答案 0 :(得分:2)
此查询可能会返回您想要的内容
SELECT MAX(CAST(REPLACE(Column2, '.', '') as INT)) FROM table