SQLで一部の文字列を取得するにはSUBSTR関数やLEFT関数、RIGHT関数を使用することで可能となります。DBMS毎に利用できる関数に違いがありOracleではLEFT関数、RIGHT関数は使用出来ません。
関数\DBMS | MySQL | PostgreSQL | SQL Server | Oracle |
SUBSTR or SUBSTRING | ○ | ○ | ○ | ○ |
LEFT | ○ | ○ | ○ | ✕ |
RIGHT | ○ | ○ | ○ | ✕ |
サンプルテーブル
- 「goods」テーブル
SUBSTR関数の使用例
LEFT関数の使用例
RIGHT関数の使用例
SQLで文字列置換をするにはREPLACE関数を使用することで可能となります。類似の関数にTRANSLATE関数がありますが、こちらは文字列単位ではなく1文字ずつ文字単位で置換します。
ここではPostgreSQLでの実行サンプルをベースに説明していきます。
サンプルテーブル
- 「goods」テーブル
REPLACE関数の使用例
TRANSLATE関数の使用例
SQLで文字列を結合(連結)して取得するためにはCONCAT関数やCONCAT_WS関数、文字列結合子「||」を使用することで可能となります。DBMS毎で微妙に違いはありますが、ここではPostgreSQLでの実行サンプルをベースに説明していきます。
サンプルテーブル
- 「goods」テーブル
CONCAT関数の使用例
文字列結合子「||」の使用例
CONCAT_WS関数の使用例
HTMLで番号付きリストを表示するのは<ol>タグの中に<li>タグを記述することで表現できますが、<ol>タグにreversed属性やstart属性、type属性を付与することで表示される番号を操作することが出来ます。
<ol>タグに何も属性付けない場合
HTML
|
<ol> <li>パソコン</li> <li>テレビ</li> <li>ソファー</li> </ol> |
表示結果
- パソコン
- テレビ
- ソファー
<ol>タグにreversed属性を付けた場合
HTML
|
<ol reversed=""> <li>パソコン</li> <li>テレビ</li> <li>ソファー</li> </ol> |
表示結果
- パソコン
- テレビ
- ソファー
<ol>タグにstart属性を付けた場合
HTML
|
<ol start="2"> <li>パソコン</li> <li>テレビ</li> <li>ソファー</li> </ol> |
表示結果
- パソコン
- テレビ
- ソファー
<ol>タグにtype属性を付けた場合
HTML
|
<ol type="A"> <li>パソコン</li> <li>テレビ</li> <li>ソファー</li> </ol> |
表示結果
- パソコン
- テレビ
- ソファー
SQLで複数のSELECTで問い合わせた結果を連結したいという場合は集合演算子関数と言われる「UNION」や「UNION ALL」演算子を使用することで取得可能となります。
イメージ図
- UNIONは重複行を削除して取得するので「A & C」を取得出来ます。
- UNION ALLは重複行を含めて取得するので「A & B & C」を取得出来ます。
サンプルテーブル
UNIONの使用例
サンプルテーブル「goods」をUNIONで連結して取得するサンプルとなります。
- SQL(クエリー)
|
SELECT id,name,type_code FROM goods WHERE name = '商品A' UNION SELECT id,name,type_code FROM goods WHERE type_code = '101' |
- 出力結果
UNION ALLの使用例
サンプルテーブル「goods」をUNION ALLで連結して取得するサンプルとなります。
- SQL(クエリー)
|
SELECT id,name,type_code FROM goods WHERE name = '商品A' UNION ALL SELECT id,name,type_code FROM goods WHERE type_code = '101' |
- 出力結果
「駑馬十駕」 IT系情報を中心に調べた事をコツコツ綴っています。