-1

元の質問:

私は 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
4

2 に答える 2

1

列のすべての値が NULL である場合に、既知の列の値をデフォルトにする方法について単に質問している場合は、これを使用できます。

IF EXISTS(SELECT myColumn FROM mytable WHERE myColumn IS NOT NULL)
    SELECT myColumn FROM myTable WHERE myColumn is NOT NULL
ELSE
    UPDATE myTable SET myColumn = myValue

これは、関心のある列の少なくとも 1 つの値が null でないかどうかを確認しています。もしそうなら、それはあなたが選択したいということです。それ以外の場合は、null でない列を要求したときに結果が返されなかったため、すべての列を更新します。

于 2012-04-23T17:23:24.800 に答える
-1

まず、SQL の 4 つの基本的なコマンドを理解する必要があります。例として、次の person テーブルを使用します。

名前 既婚扶養家族
------- ---------------------- ----------------
ビル 真 真
ジェーン 偽    
フラン 真
エド 偽    
トム 偽 真


選択 - (すでに理解しているようです) を使用すると、検索条件に基づいて、1 つまたは複数のテーブルからデータを取得できます。

Name = 'Bill' の人から名前を選択

このステートメントは、次の

名前 Married Dependents を返します
---------- ---------------------- ----------------
Bill True True


挿入 - 新しいレコードをデータベースに入力できます

INSERT INTO Person (名前、既婚者、扶養家族) VALUES ('Jill', 'True', 'False')

このステートメントにより、person テーブルは次のテーブルのようになります

Name Married Dependents
---------- ---------- ----------------
Bill True真
ジェーン 偽    
フラン 真 真
エド 偽    
ジル 真         
トム 偽 真


削除 - テーブルからレコードを削除します

DELETE FROM People WHERE Name = 'フラン'

このステートメントにより、Person テーブルは次のようになります

Name Married Dependents
---------- ---------- ----------------
Bill True True J
​​ane False         
Ed False    
Jill True         
Tom False True


最後に探しているもの
***更新 - 条件に基づいて任意の数のレコードのテーブルを更新できます

今日まで、誰かに扶養家族がいない場合、扶養家族の列は null のままでした。上司から、扶養家族を持たない人は扶養家族の列に「False」を入力する必要があると言われました。次のステートメントを記述します。

UPDATE Person SET Dependents = 'False' WHERE Dependents = NULL

あなたの

テーブル は次 のようになります。偽 偽 ジル 真 偽 トム 偽 真





于 2012-04-23T17:56:58.390 に答える