0

我需要提取包含最高值的记录,特别是我只需要该字段中的值。问题是该列是 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。

4

1 回答 1

2

此查询可能会返回您想要的

SELECT MAX(CAST(REPLACE(Column2, '.', '') as INT)) FROM table
于 2013-11-07T03:22:46.713 回答