元の質問:
私は SQL サーバーを初めて使用するので、探しているものを見つけることができません。私はSQLでこのロジックを作成しようとしています:
IF [column] IS NULL THEN
( SELECT [value] as [columnname] )
ELSE
( SELECT [column] WHERE [column_value] IS NOT NULL )
基本的に、列全体がnullの場合、列全体を選択して特定の値で埋めたいと思います。
それ以外の場合、その列が完全に null でない場合は、null 以外の値のみを選択したい (合体?)。
SQL Server 2005 を使用してこれを行う最善の方法は何ですか?
回答 (Josh と他の皆さんに感謝します!)
IF EXISTS(SELECT myColumn
FROM mytable
WHERE myColumn IS NOT NULL)
SELECT myColumn as colName
FROM myTable
WHERE myColumn is NOT NULL
ELSE
SELECT [nullReplacementValue] as colName
FROM myTable
混乱のための以前の説明:
編集:たとえば、入力テーブルがそのまま与えられた場合:
ColA ColB ColC
--------------------
A null null
B null 1
C null null
この SELECT を ColB で実行していた場合は、次のように返されます。
ColB
----
null
null
null
(最終的には「null」を何らかの値に置き換えたいと思いますが、それは後で行うことができます)。
この SELECT を ColC で実行していた場合は、次のように返されます。
ColC
----
1