[pgsql-jp: 29255] Re: SQL文のSELECTについて
羽生 章洋
habu @ air-beat.com
2003年 3月 1日 (土) 21:46:50 JST
"Nakamura Kazusi" <kazzz4 @ hotmail.com>さん:
羽生と申します。
基本的には、既にかさはらさんや近藤さんがレスされている
とおりですし、直接そういうのを実行できる方法は用意されていませんが、
SQLで遊んでみる、という意味で、こういうのもアイディアのひとつですよ
ということで、指定した列を除いたSELECT文を生成する簡単なサンプルを
書いておきます。
select 'SELECT'
union all
select ' '||a.attname||',' from pg_attribute as a
where a.attrelid in
(select oid
from pg_class
where lower(relname) = lower('表名')
)
and lower(a.attname) not in
(lower('除外する列名1'),lower('除外する列名2')・・・)
union all
select 'FROM '||'表名'
;
もし汎用的にしたい場合は、create functionでもしてみてください。
列名のnot inのところがこのままだと駄目だと思いますけど。
PL/pgSQLにしておけば、execute使って実行まで行えますし。
私はこういうのは、SQL使いならパっと浮かんでさっさと手書きするのが
カッコいい気がするので(バカ^^;)、いつもその場その場でアドホック
に作ってます。
生産性云々はさておいて、もしSQLを使いこなしたいと思うのであれば
こういうトライを年がら年中やってると、SQLだけでかなりのことが
簡単に出来るようになります。
# やり過ぎて、パフォーマンスの悪いSQLになっても、今度はそれを
速くするということにトライする中で、チューニングのスキルも
ついちゃいますしね。
直接の参考にはならないので恐縮ですが、発想のヒントになれば幸いです。
★☆★☆★☆★ ↓↓↓知人の頑張りを応援中↓↓↓ ★☆★☆★☆★
アトピーでお悩みの方のお役に立てるかも:http://www.shittori.com/
----------------------------------------------------------------
最近、元気のない方のお役に立てるかも: http://www.genkiari.com/
★☆★☆★☆★ ↑↑↑知人の頑張りを応援中↑↑↑ ★☆★☆★☆★
================================================================
有限会社エア・ビート (http://www.air-beat.com/)
有限会社エア・ロジック(http://www.air-logic.co.jp/)
羽生 章洋 (mailto:habu @ air-beat.com)
================================================================
pgsql-jp メーリングリストの案内