- - PR -
SELECT文でデータが含まれる列だけにしたい
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-08-19 14:16
SQLのSELECT文である列のすべての行がNULLの場合、
その列を除きたいのですが、可能でしょうか。 (WHERE句の条件によって全行がNULLになる列は異なります。) | ||||
|
投稿日時: 2005-08-19 14:28
こんにちは。
上の文の「行」と「列」、これでいいんですか?逆ではないですか? まあ、それ以前にこのページを熟読して出直してらっしゃい。 今の文では、どの世界で何をしたいのか非常にわかりにくいです。 http://www.hyuki.com/writing/techask.html#summary | ||||
|
投稿日時: 2005-08-19 15:30
列数を可変にすることはできないから無理。
1. いずれの行においても NULL値しか持たない列を調べる。 2. 上記で調べた列を除いた select 文を動的に組み立てて実行する。 という二段構えが必要でしょう。 | ||||
|
投稿日時: 2005-08-19 15:53
「ある行のすべての列がNULLの場合、その列を除きたい」
という事なら Where Not (FieldA is Null AND FieldB is Null AND ...) ということ? | ||||
|
投稿日時: 2005-08-19 15:56
>列数を可変にすることはできないから無理。
こうはっきり言われて安心?しました。 別の方法を考えます。 (元になっている表は、ある表をクロス集計したものなのですが、 クロス集計の段階で不要な列が含まれないようにしてみます。) ありがとうございました。 | ||||
|
投稿日時: 2005-08-19 15:58
いえ、行ではありません 「ある*列*のすべての列がNULLの場合、その列を除きたい」 ということです。 | ||||
|
投稿日時: 2005-08-19 15:59
訂正です。
いえ、行ではありません 「ある*列*のすべての*行*がNULLの場合、その列を除きたい」 ということです。 | ||||
|
投稿日時: 2005-08-19 22:41
であればいったん行の値をチェックするためにいったんSQLを発行して、その後NULLが存在しないカラムだけを選択するSQLを動的に生成して再実行するような感じになりますね。
|
1