問題:
SQLで一部のテキストを小文字に変更したい。
例:
データベースには、item
次の列にデータがあります:id
、code
、およびwood_type_used
。 wood_type_used
のデータでケースに一貫性がありません 桁。すべての種類の木材を小文字で表示したいと思います。
id | コード | wood_type_used |
---|---|---|
1 | 000237PSH | 松 |
2 | 000115MCH | マホガニー |
3 | 000073BTB | バーチ |
4 | 00068WBD | wAlnUt |
5 | 00055BSH | バーチ |
解決策:
LOWER()
を使用します 機能:
SELECT code, LOWER(wood_type_used) FROM item;
クエリは、小文字で書かれた木材タイプのアイテムを返します:
code | wood_type_used |
---|---|
000237PSH | 松 |
000115MCH | マホガニー |
000073BTB | バーチ |
00068WBD | クルミ |
00055BSH | バーチ |
ディスカッション:
SQLデータベースのテキストデータを小文字で表示する場合は、LOWER()
を使用してください。 働き。この関数は、テキスト値が小文字で表示される文字列または列の名前を引数として取ります。元のテキストデータのバージョンを返します。このバージョンでは、すべての大文字が同等の小文字に置き換えられ、残りの文字は変更されません。
ただし、LOWER()
のアプリケーションは、テキストを統一的に表示することだけではありません。 働き。大文字と小文字を区別しないクエリ、つまり、探しているテキストデータが最初に大文字と小文字を区別する方法とは無関係なクエリでも役立つ場合があります。
たとえば、上記の例の表では、白樺の木で作られたすべてのアイテムを検索したい場合があります。木材タイプの値は一貫して大文字と小文字が区別されないため、「birch
」を持つすべての行をクエリするだけです。 wood_type_used
の’ リストされている製品のうち2つが明らかに白樺でできている場合でも、列は1行しか返しません。ここでLOWER()
入ってくる:
SELECT * FROM item WHERE LOWER(wood_type_used) = ‘birch’;
このようなクエリは、wood_type_used
に何らかの形式の「白樺」文字列を含むすべての行を返します。 元のデータでの値の大文字と小文字の区別に関係なく、列。検索するテキストも小文字で書くことを忘れないでください。