スポンサードリンク



OpenOffice.org Baseでの文字列連結について。

OpenOffice.org Base文字列を連結(または結合)するには、工夫が必要です。

&(アンパサンド)ではなく、CONCAT関数を使います。

例えば、Accessで以下のようなSQL文の場合、

SELECT CST_CD,CST_NAME,
"〒" & ZIP_CODE & " " & PREF_NAME & CITY_NAME & TOWN_NAME & ADDRESS AS ADDRESS2,
TEL,BIRTH,SEX
FROM T04Customer,T03Town,T02City,T01Prefecture,T05Sex
WHERE T04Customer.TOWN_CD = T03Town.TOWN_CD
AND T03Town.CITY_CD = T02City.CITY_CD
AND T02City.PREF_CD = T01Prefecture.PREF_CD
AND T04Customer.SEX_CD = T05Sex.SEX_CD;


Baseでは、このように書くと、実行可能です。

SELECT CST_CD,CST_NAME,
CONCAT('〒' , ZIP_CODE) + CONCAT(' ' , PREF_NAME) + CITY_NAME + TOWN_NAME + ADDRESS AS ADDRESS2,
TEL,BIRTH,SEX
FROM T04Customer,T03Town,T02City,T01Prefecture,T05Sex
WHERE T04Customer.TOWN_CD = T03Town.TOWN_CD
AND T03Town.CITY_CD = T02City.CITY_CD
AND T02City.PREF_CD = T01Prefecture.PREF_CD
AND T04Customer.SEX_CD = T05Sex.SEX_CD;


または、次のようにも書けます。

SELECT CST_CD,CST_NAME,
CONCAT('〒') + ZIP_CODE + CONCAT(' ') + PREF_NAME + CITY_NAME + TOWN_NAME + ADDRESS AS ADDRESS2,
TEL,BIRTH,SEX
FROM T04Customer,T03Town,T02City,T01Prefecture,T05Sex
WHERE T04Customer.TOWN_CD = T03Town.TOWN_CD
AND T03Town.CITY_CD = T02City.CITY_CD
AND T02City.PREF_CD = T01Prefecture.PREF_CD
AND T04Customer.SEX_CD = T05Sex.SEX_CD;


文字列の結合にCONCATという関数を使っている点、
文字列を「'」シングルクォーテーションで囲んでいる点
がポイントです。

CONCAT関数は、以下のように使います。
CONCAT('フィールド名や文字列', 'フィールド名や文字列')

本来、文字列の結合には、CONCAT関数が良いと言われていますが、
CONCAT関数は、3つ以上を結合しようとすると、エラーになります。

CONCAT(CONCAT()・・・)というようにネスト(入れ子)にすると可能ですが、
SQL文が複雑になります。

そのため、どうしても必要な部分だけはCONCAT関数を使い、
あとは+を使って表現しています。

ps:
SQL文の中に関数を使うのは、他のデータベースでもよくあります。

スポンサードリンク






業務系システム開発初心者入門講座 TOPへ