と の 2 つの文字列列を持つテーブルがありName
ますCode
。Code
はユニークですが、Name
そうではありません。サンプルデータ:
Name Code
-------- ----
Jacket 15
Jeans 003
Jeans 26
最小値を持つ一意の行を選択したいのですがCode
、数値ではありません。むしろ、文字列の長さです。もちろん、これは機能しません:
SELECT Name, Min(Code) as Code
FROM Clothes
GROUP BY Name, Code
上記のコードは、次のようなジーンズの 1 つの行を返します。
Jeans | 003
これは正しいです。なぜなら、003
は より小さいから26
です。しかし、実際の値ではなく、値の長さを気にする私のアプリケーションではそうではありません。3 文字の長さの値は、2 文字の値よりも大きくなります。私は実際にこれを返す必要があります:
Jeans | 26
の長さはの長さ26
より短いからです。003
では、実際の最小値ではなく、最小長のコードを持つ行を選択する SQL コードを作成するにはどうすればよいでしょうか? 私はこれをやってみました:
SELECT Name, Min(Len(Code)) as Code
FROM Clothes
GROUP BY Name, Code
上記は1文字しか返さないので、最終的には次のようになります。
Jeans | 2