Symfoware Server SQLビギナーズガイド - FUJITSU - |
目次 索引 |
第6章 いろいろなデータ操作の方法 |
表のデータを操作するときに、文字列を操作したり、文字列と文字列を結合させたりすることができます。文字列の一部を操作する処理には以下のものがあります。
処理名 |
機能 |
---|---|
文字部分列関数 |
文字部分列関数は、SUBSTRINGを指定して、文字値式の開始位置から、文字列長分の部分列を求めます。 |
POSITION式 |
文字列の部分列の開始位置を求めます。 |
LENGTH式 |
文字列の長さを求めます。 |
TRIM関数 |
TRIM関数は、指定された文字を取り除きます。 |
大文字小文字変換 |
大文字小文字変換は、UPPERまたはLOWERを指定して、文字を大文字または小文字に変換します。 |
連結 |
両項の文字列を結合します。 |
LPAD式 |
LPAD式は、文字値式の左側に、全体の文字列数が結果長になるまで、埋込み文字列をサイクリックに埋め込んで、結果長数分の文字列を返します。 |
RPAD式 |
RPAD式は、文字値式の右側に、全体の文字列数が結果長になるまで、埋込み文字列をサイクリックに埋め込んで、結果長数分の文字列を返します。 |
REPLACE式 |
REPLACE式はREPLACE元の文字列中に含まれる検索文字列のすべてを置換文字列に置き換えた結果を返却します。 |
REPLICATE式 |
REPLICATE式は、指定された結果文字数の範囲内で、指定された回数だけ値式を繰り返します。 |
REVERSE式 |
REVERSE式は、値式を逆に並び替えたものを返します。 |
例1
会社表から、会社名および住所を取り出します。会社名にはうしろの空白文字を取り除いて“株式会社”を結合させ、住所は都道府県のみを取り出します。特定の文字列の一部を取り出したり、特定の列の値と文字列を結合させて取り出すことができます。TRIM関数は、TRIM指定にLEADINGを指定した場合は値式の前端から、TRAILINGを指定した場合は後端から、BOTHを指定した場合は両端から文字を取り除きます。
連結は、複数の文字列を連結演算子(“||”)でつないで記述します。このとき、列のデータ型は文字列型または各国語文字列型であることが必要です。また、連結の両項のデータ型は文字列型または各国語文字列型であり、それらは比較可能であることが必要です。比較可能なデータ型については、“表:比較可能なデータ型”を参照してください。
文字部分列関数は、SUBSTRINGを指定して、値式の開始位置から文字列長分の部分列を求めます。
SELECT TRIM( TRAILING FROM 会社名 ) || N'株式会社', (1) (2) (A) SUBSTRING( 住所 FROM 1 FOR 4 ) (B) (3) (4) (5) FROM 在庫管理.会社表(1) TRIM指定
(2) 値式
(1)〜(2) TRIM関数
(1)〜(A) 連結
(3) 値式
(4) 開始位置
(5) 文字列長
(B)〜(5) 文字部分列関数
例2
営業所一覧表という表から、コードおよび営業所名を取り出します。このとき、営業所名は“営業所”という文字列を取り除いて取り出します。
SELECT コード, SUBSTRING(営業所名 FROM 1 FOR POSITION(N'営業所' IN 営業所名)-1) (A) (1) (2) FROM 在庫管理.営業所一覧表(1) 値式
(2) 値式
(A)〜(2) POSITION式
例3
第二在庫表の製品名の文字列の最終3文字を取り出します。
SELECT コード,SUBSTRING(COL2 FROM CHAR_LENGTH(TRIM(COL2))-2) AS 製品略称,在庫数量 (A) (1) FROM 在庫管理.第二在庫表(1) TRIM関数
(A)〜(1) LENGTH式
例4
支店名の左側に“*”を埋め込みます。全体の長さは、5文字とします。
SELECT 支店コード, LPAD(TRIM(TRAILING N'□' FROM 支店名), 5, N'*') (B) (A) (1) (2) (3) (4) FROM 支店コード表(1) TRIM指定
(2) 値式
(3) 結果長
(4) 埋込み文字列
(A)〜(2) TRIM関数
(B)〜(4) LPAD式
例5
第二在庫表という表のCOL2の“ビデオ”という文字を“VIDEO”に置換えます。
UPDATE 在庫管理.第二在庫表 SET COL2 = REPLACE(TRIM(COL2), N'ビデオ',N'VIDEO') (A) (1) (2) (3)(1) REPLACE元
(2) 検索文字列
(3) 置換文字列
(A)〜(3) REPLACE式
目次 索引 |