1

請看看這個並讓我知道可能的解決方案嗎?有條件的null在select語句列中不爲空 - SQL Server

數據以從表中可以示出:

select a,b,d,e from table xyz. 
  • 當c爲具有值零節目d

  • 當c不爲空節目e爲值

所需數據:

數據看起來像這樣

a b c   d e 
1 2 null   2 
1 2 not null 2 

從上面的數據,如果c爲null,顯示d = b,否則E =灣

如何爲上述條件編寫正確的SQL查詢,因爲我試過它不起作用。

在此先感謝。

+0

你想再試一次。來自客戶的這種規格是不可或缺的... –

回答

1
SELECT CASE WHEN c IS NULL THEN d ELSE e END 
+0

您錯過了一個關鍵字。這裏正確的語法是:'當c爲NULL時,選擇CASE然後d ELSE e END' – Bridge

+0

@Bridge謝謝,修正。 –

1
SELECT CASE WHEN c IS NULL THEN d ELSE e END 

約顯示器d位= b,否則E = B引導我相信你也可以嘗試比較NULLNOT NULL值。

重要的是要明白SQL NULL意味着「未知」,因此不能在已知值和未知值之間進行比較。

在這種情況下,我建議使用Coalesce將其值爲NULL時的值更改爲可比較的值,以免影響您的邏輯。

Coalesce(d, 0) = b