7.27.1 連結演算の指定形式および規則
値式中に連結演算を指定できます。
- 〈この項の構成〉
(1) 指定形式
連結演算::={値式一次子 |文字値式+値式一次子 |文字値式||値式一次子 |バイナリ値式+値式一次子 |バイナリ値式||値式一次子}
(2) 指定形式の説明
- 値式一次子:
-
値式一次子については,「7.21.1 値式の指定形式および規則」を参照してください。
- 文字値式:
-
文字値式については,「7.21.1 値式の指定形式および規則」を参照してください。
- バイナリ値式:
-
バイナリ値式については,「7.21.1 値式の指定形式および規則」を参照してください。
(3) 連結演算の種類
連結演算の種類を次の表に示します。
項番 |
連結演算 |
機能 |
---|---|---|
1 |
+ |
第1演算項と第2演算項を連結します。 |
2 |
|| |
例えば,'ABC'+'DEF'という演算の場合,'ABC'が第1演算項,'DEF'が第2演算項になります。
(4) 規則
-
第1演算項および第2演算項には,文字データまたはバイナリデータを指定してください。
-
第1演算項および第2演算項に指定できるデータ型の組み合わせを次の表に示します。
表7‒43 連結演算の第1演算項および第2演算項に指定できるデータ型の組み合わせ 第1演算項のデータ型
第2演算項のデータ型
CHAR
VARCHAR
BINARY
VARBINARY
CHAR
○
○
×
×
VARCHAR
○
○
×
×
BINARY
×
×
○
○
VARBINARY
×
×
○
○
- (凡例)
-
○:指定できます。
×:指定できません。
-
連結演算は,最大500個の演算子(+,||)を使った演算ができます。ただし,演算項に指定した値式中に指定した列が,ビュー表の列,導出表の列,または問合せ名の列の場合,その基となる値式を展開したあとの値式の総数が10,000個以内となるようにしてください。
-
第1演算項または第2演算項には,?パラメタを単独で指定できません。
-
連結演算の結果の値は,非ナル値制約なし(ナル値を許す)となります。
-
第1演算項または第2演算項のどちらかがナル値の場合,連結演算の結果はナル値となります。
-
連結演算の結果,最大長が32,000バイトを超える文字データまたはバイナリデータを連結することはできません。
-
CHARのデータの末尾に半角空白が格納されている場合,その半角空白も連結の対象になります。
(例)
C1列がCHAR(5)で値が'ABC△△',C2列がVARCHAR(10)で値が'XYZ'の場合,次のように連結されます。
"C1"+"C2" → 'ABC△△XYZ'
"C2"+"C1" → 'XYZABC△△'
(凡例)△:半角空白
(5) 例題
- 例題1(文字データを連結する場合)
-
表T1のC2列の文字データとC3列の文字データを連結し,連結結果が'efg03v03'の行を検索します。
SELECT * FROM "T1" WHERE "C2"||"C3"='efg03v03'
- 例題2(バイナリデータを連結する場合)
-
表T1のC2列のバイナリデータとC3列のバイナリデータを連結し,連結結果がX'ABC1230000DEF456'の行を検索します。
SELECT * FROM "T1" WHERE "C2"||"C3"=X'ABC1230000DEF456'