こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

postgreSQLのupdateについて

postgresqlのupdateについて質問です。
一つのテーブルで二つの列と任意の文字を別の列へ結合するupdate文を作りたいのですが初心者なものでわかりやすくご教授いただけたら幸いです。

UPDATE テーブル名 SET 列3 = '文字' || "列1" || '文字' || "列2"
WHERE 列 Is Null;

何卒、よろしくお願い致します。

投稿日時 - 2012-01-11 22:56:55

QNo.7239155

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

上記で動きます。WHERE句を取った形で、psql で実行すると次のようになります。


hoge=# create table t (a int, b varchar(64), c varchar(64), d varchar(64));
CREATE TABLE
hoge=# insert into t values (1, '111', 'aaa');
INSERT 0 1
hoge=# insert into t values (2, '222', 'bbb');
INSERT 0 1
hoge=# select * from t;
a | b | c | d
---+-----+-----+---
1 | 111 | aaa |
2 | 222 | bbb |
(2 rows)

hoge=# update t set d = b || c;
UPDATE 2
hoge=# select * from t;
a | b | c | d
---+-----+-----+--------
1 | 111 | aaa | 111aaa
2 | 222 | bbb | 222bbb
(2 rows)

hoge=# update t set d = b || ' ' || c;
UPDATE 2
hoge=# select * from t;
a | b | c | d
---+-----+-----+---------
1 | 111 | aaa | 111 aaa
2 | 222 | bbb | 222 bbb
(2 rows)

hoge=#


なお、列名はダブルクォートでくくる必要はありません。必要なのは、大文字と小文字を区別する場合や、通常許されない文字列を列名に使う場合です。

お役にたちましたでしょうか。

投稿日時 - 2012-01-12 13:31:46