2

DECIMAL 型を含むテーブル列に対して LIKE ステートメントを実行できますか? または、10 進数 (または整数) フィールドの数値を指定して、一致する行を選択する最良の方法は何でしょうか?

例えば:

Name  Age
...   ...
John  25
Mary  76
Jim   45
Erica 34
Anna  56
Bob   55

次のようなものを実行すると、次のようSELECT * FROM table WHERE age LIKE 5に返されます。

Name  Age
John  25
Jim   45
Anna  56
Bob   55
4

3 に答える 3

3

あなたの質問から正確に何を達成しようとしているのかは明らかではありませんが、クエリの例に基づいて、実行する必要があるフィルタリングは通常の算術演算子を使用して達成できるはずです。

SELECT * FROM table WHERE MOD(age, 10) = 5 -- All records where the age ends in 5

または:

SELECT * FROM table WHERE MOD(age, 5) = 0 -- All records where age is divisible by 5

DECIMALフィールドを使用しているにもかかわらず、実際には数値として使用していないことを明確にしたので (要件が存在しないかのように)、他の人からの回答は妥当です - フィールドをテキスト値に変換しますその上で使用LIKEします。

または、フィールドのタイプを使用方法により適したものに変更します。

于 2012-12-03T14:38:57.007 に答える
0

decimal フィールドを varchar に変換してから、同様に適用できます。

于 2012-12-03T14:35:32.167 に答える
-1

クエリを作成する場合

select name from table where age like '%5%'

これを実現できます (少なくとも mysql と db2 では)。ただし、数値を一致させたい場合は、次のようなものを使用する必要があります。

select name from table where age > minimum and age < maximum

または、最後の数値を照会することに本当に関心がある場合は、モジュロと比較してみてください。

于 2012-12-03T14:39:27.750 に答える