ページの先頭行へ戻る
Symfoware Server V10.0.0 アプリケーション開発ガイド(共通編)

9.4 文字列のデータを操作する

表のデータを操作するときに、文字列を操作したり、文字列と文字列を結合させたりすることができます。文字列の一部を操作する処理には以下のものがあります。

表9.8 文字列の一部を操作する処理

処理名

機能

文字部分列関数

文字部分列関数は、SUBSTRINGを指定して、文字値式の開始位置から、文字列長分の部分列を求めます。

POSITION式

POSITION式は、POSITIONを指定して、1番目の文字値式の文字列を持つ2番目の文字値式中の文字の開始位置を求めます。

LENGTH式

LENGTH式は、データ列値式の文字数またはバイト数を求めます。

TRIM関数

TRIM関数は、指定された文字を取り除きます。

大文字小文字変換

大文字小文字変換は、UPPERまたはLOWERを指定して、文字を大文字または小文字に変換します。

連結

連結は、両項の文字列を結合します。

LPAD式

LPAD式は、文字値式の左側に、全体の文字列数が結果長になるまで、埋込み文字列をサイクリックに埋め込んで、結果長数分の文字列を返します。

RPAD式

RPAD式は、文字値式の右側に、全体の文字列数が結果長になるまで、埋込み文字列をサイクリックに埋め込んで、結果長数分の文字列を返します。

REPLACE式

REPLACE式はREPLACE元の文字列中に含まれる検索文字列のすべてを置換文字列に置き換えた結果を返却します。

REPLICATE式

REPLICATE式は、指定された結果文字数の範囲内で、指定された回数だけ、値式を繰り返します。

REVERSE式

REVERSE式は、値式を逆に並び替えたものを返します。


1

会社表から、会社名および住所を取り出します。会社名にはうしろの空白文字を取り除いて“株式会社”を結合させ、住所は都道府県のみを取り出します。

特定の文字列の一部を取り出したり、特定の列の値と文字列を結合させて取り出すことができます。TRIM関数は、TRIM指定にLEADINGを指定した場合は値式の前端から、TRAILINGを指定した場合は後端から、BOTHを指定した場合は両端から文字を取り除きます。

連結は、複数の文字列を連結演算子(“||”)でつないで記述します。このとき、列のデータ型は文字列型または各国語文字列型であることが必要です。また、連結の両項のデータ型は文字列型または各国語文字列型であり、それらは比較可能であることが必要です。比較可能なデータ型については、“表9.5 比較可能なデータ型”を参照してください。

文字部分列関数は、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) 文字部分列関数

図9.20 文字値関数を組み合わせてデータを取り出す例

2

営業所一覧表という表から、コードおよび営業所名を取り出します。このとき、営業所名は“営業所”という文字列を取り除いて取り出します。

SELECT コード,

    SUBSTRING(営業所名 FROM 1 FOR POSITION(N'営業所' IN 営業所名)-1)
                                       (A)       (1)           (2)

    FROM 在庫管理.営業所一覧表

(1) 値式

(2) 値式

(A)~(2) POSITION式

図9.21 文字部分列関数と数値関数を組み合わせてデータを取り出す例

3

第二在庫表の製品名の文字列の最終3文字を取り出します。

SELECT コード,SUBSTRING(COL2 FROM CHAR_LENGTH(TRIM(COL2))-2) AS 製品略称,在庫数量
                                        (A)         (1)
            FROM  在庫管理.第二在庫表

(1) TRIM関数

(A)~(1) LENGTH式

図9.22 文字部分列関数と数値関数を組み合わせてデータを更新する例

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式