SELECT Col1, Col2, Col3
FROM Table
结果集:(样本表)
Col1 Col2 col3
----------- ---------- -----------
Value Value Value
Value Value Value
Value Value Value
Value Value Value
Value Value Value
Show Col3 with NULL/empty values(假设Col3支持NULL)除了col1条件为真的行(=values)
条件如(WHERE Col > 2| WHERE chareindex( 'x' , Col1 )
等…)
Table end results:(这里的条件对第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
假设在上面的代码中有一个employeeID的条件employeeID 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
什么条件/s和他们应该如何被放置来实现这个结果集
- 您可以更改"基本代码"。完全
- 你不知道'Lastname' col(或col3)的值
- 必须保留false条件值的所有行和列值
- 表大
另一种提问方式:(基于问题的第一段)
对于col1中的值对条件为true的行,显示Col3中的值,如果不显示NULL/空,并保留所有行的col2值。
我不确定是否完全理解你想做什么,但是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
试试这个:
Select col1, col2,
Case When col1 (condition) Then col3 Else null End As col3
From Table