SELECT Col1, Col2, Col3
FROM Table
結果集:(樣本表)
Col1 Col2 col3
----------- ---------- -----------
Value Value Value
Value Value Value
Value Value Value
Value Value Value
Value Value Value
顯示帶有 NULL/空值的Col3(假設 Col3 在需要時支持 NULL),除了 col1 條件為 true 的行(=values),保留所有行的 Col2 上的值。
條件如( WHERE Col > 2| WHERE chareindex( 'x' , Col1 )等)
表最終結果:(此處的條件適用于第 2 行和第 5 行)
Col1 Col2 col3
----------- ---------- -----------
1 Value Value NULL
2 Value Value Value
3 Value Value NULL
4 Value Value NULL
5 Value Value Value
問題的更多表達方式:
SELECT EmployeeID, Firstname, Lastname,
From Employees
結果集:
EmployeeID FirstName LastName
----------- ---------- --------------------
1 Nancy Davolio
2 Andrew Fuller
3 Janet Leverling
4 Margaret Peacock
5 Steven Buchanan
6 Michael Suyama
7 Robert King
假設在上面的代碼中,有一個員工 ID 和員工 ID 3 和 6 的條件符合該條件
我希望實作:
EmployeeID FirstName LastName
----------- ---------- --------------------
1 Nancy NULL
2 Andrew NULL
3 Janet Leverling
4 Margaret NULL
5 Steven NULL
6 Michael Suyama
7 Robert NULL
什么樣的條件和他們應該如何實作這個結果集
- 您可以完全更改“基本代碼”
- 您不知道 'Lastname' col(或 col3)上的值
- 您必須保留假條件值的所有行和列值
- 桌子很大
提出問題的另一種方式:(基于問題的第一段)
對于 col1 中的值符合條件的行,顯示 Col3 中的值,如果不顯示 NULL/empty 并保留所有行的 col2 值。
uj5u.com熱心網友回復:
嘗試這個:
Select col1, col2,
Case When col1 (condition) Then col3 Else null End As col3
From Table
uj5u.com熱心網友回復:
我不確定是否完全理解您想要做什么,但是SELECT CASE WHEN可以解決您的問題嗎?
這是一個例子:
select
Col1,
Col2,
case when (Condition) then NULL else Col3 end as Col3
FROM Table
它會給你以下內容:
Col1 Col2 col3
----------- ---------- -----------
5 Value Value
21 Value NULL
7 Value Value
8 Value Value
40 Value NULL
使用這種方式,您可以有條件地從列或 NULL 中選擇資料
編輯:關于解釋case...when,你可以在這里找到解釋和例子:https :
//www.w3schools.com/sql/sql_case.asp
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/329773.html
標籤:sql-server 查询语句 短信
