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 を取得します。

これを行うためにいくつかの関数を書き込もうとしましたが、私が書いたものは本来よりもずっと複雑に見えたようです。単純な機能や複雑な機能しかないものを手に入れた人はいますか?

列 2 の最大値を含むレコードの PK を取得しようとしていることを明確にしたいと思います。

4

1 に答える 1

2

このクエリは、あなたが望むものを返すかもしれません

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