Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

CONCAT (SQL)

2 つの文字列式を連結した結果として、文字列を返すスカラ文字列関数です。

Synopsis

{fn CONCAT(string1,string2)}

説明

  • {fn CONCAT(string1,string2)} は、2 つの文字列を連結し、連結後の文字列を返します。この構文は連結演算子 (||) の使用に相当します。STRING 関数を使用することで、2 つ以上の式を連結して 1 つの文字列にすることもできます。

    以下の文は、上位 5 つの名前と姓をテーブルから選択し、LastName 列の値と FirstName 列の値を連結してコンマで区切ります。

    SELECT TOP 5
    FirstName, LastName,
    {fn CONCAT({fn CONCAT(LastName, ',')}, FirstName)} AS FullName
    FROM Sample.Person
    FirstName LastName FullName

    Quigley

    Ulman

    Ulman,Quigley

    Buzz

    Woo

    Woo,Buzz

    Mario

    Mastrolito

    Mastrolito,Mario

    Julie

    Noodleman

    Noodleman,Julie

    Lawrence

    Quincy

    Quincy,Lawrence

    例 : 2 つの文字列を連結

引数

string1,string2

連結する文字列式。式は列の名前や文字リテラル、数値、または他のスカラ関数の結果を指定できます。基本となるデータ型は、任意の文字タイプ (CHAR や VARCHAR など) とすることができます。

数値または数値文字列の任意の組み合わせを連結できます。連結の結果は数値文字列です。InterSystems SQL では、連結の前に数値をキャノニック形式に変換します (指数が展開され、先頭のゼロと末尾のゼロは削除されます)。数値文字列は、連結の前にキャノニック形式に変換されません。

先頭または末尾の空白は文字列に連結できます。NULL 値を文字列に連結すると NULL になります。

2 つの文字列の連結

以下の文では、Home_State 列と Home_City 列を連結して、場所の値を生成します。CONCAT 関数と連結演算子を使用して、2 回の連結が示されています。

SELECT TOP 5
  {fn CONCAT({fn CONCAT(HomeCity,', ')}, HomeState)} AS LocationWithConcatFunction,
  HomeCity||', '||HomeState AS LocationWithConcatOperator
FROM Sample.Person
LocationWithConcatFunction LocationWithConcatOperator

Denver, CO

Denver, CO

Boston, MA

Boston, MA

Albuquerque, NM

Albuquerque, NM

Jacksonville, FL

Jacksonville, FL

Lexington, KY

Lexington, KY

以下の文は文字列と NULL を連結し、NULL の列を返します。

SELECT {fn CONCAT(HomeState,NULL)} AS StrNull
FROM Sample.Person
StrNull

NULL

NULL

NULL

NULL

NULL

以下の文は、連結前に数値がキャノニック形式に変換される例を示しています。このような状況を避けるには、この文の 2 番目の部分に示すように数値を文字列として指定します。

SELECT TOP 5
  {fn CONCAT(HomeState,0012.00E2)} AS StrNum,
  {fn CONCAT(HomeState,'0012.00E2')} AS StrStrNum
FROM Sample.Person
StrNum StrStrNum

CO1200

CO0012.00E2

MA1200

MA0012.00E2

NM1200

NM0012.00E2

FL1200

FL0012.00E2

KY1200

KY0012.00E2

以下の文は、末尾の空白が保持されることを示しています。2 文字の状態フィールドを 10 個の空白と連結すると、連結した列のそれぞれの値は長さが 12 になります。

SELECT TOP 5
HomeState,
CHAR_LENGTH({fn CONCAT(HomeState,'          ')}) AS StrSpace
FROM Sample.Person2
HomeState StrSpace

CO

12

MA

12

NM

12

FL

12

KY

12

関連項目

FeedbackOpens in a new tab