如何在 Col3 中显示值,其中 Col1 值为真,对于 Col1 中的假值,仅在 Col3 中显示 NULL
How to show values in Col3 where Col1 values are true and for false values in Col1 show NULL in Col3 only
SELECT Col1, Col2, Col3
FROM Table
结果集:(样本 table)
Col1 Col2 col3
----------- ---------- -----------
Value Value Value
Value Value Value
Value Value Value
Value Value Value
Value Value Value
显示具有 NULL/empty 值的 Col3(假设 Col3 在需要时支持 NULL)除了 col1 条件为的行(=值) true 保留所有行的 Col2 上的值。
条件如( WHERE Col > 2| WHERE chareindex( 'x' , Col1 )
等)
Table 最终结果:(此处的条件对第 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
什么 condition/s 以及应该如何放置才能达到这个结果集
- 您可以完全更改“基本代码”
- 您不知道 'Lastname' col(或 col3)
上的值
- 您必须保留 false 条件值的所有行和列值
- table大
另一种出题方式:(基于问题第一段)
对于 col1 中的值与 condition/s 相同的行,显示 Col3 中的值,如果不显示 NULL/empty 并保留所有行的 col2 值。
我不确定是否完全理解您想要做什么,但是 SELECT
CASE WHEN
可以解决您的问题吗?
这是一个例子:
SELECT
Col1,
Col2,
CASE WHEN (Condition) THEN NULL ELSE Col3 END AS Col3
FROM Table
它会return这个输出:
Col1 Col2 col3
----------- ---------- -----------
5 Value Value
21 Value NULL
7 Value Value
8 Value Value
40 Value NULL
使用这种方式,您有条件地 select 来自列的数据或 NULL
EDIT :关于 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
SELECT Col1, Col2, Col3
FROM Table
结果集:(样本 table)
Col1 Col2 col3
----------- ---------- -----------
Value Value Value
Value Value Value
Value Value Value
Value Value Value
Value Value Value
显示具有 NULL/empty 值的 Col3(假设 Col3 在需要时支持 NULL)除了 col1 条件为的行(=值) true 保留所有行的 Col2 上的值。
条件如( WHERE Col > 2| WHERE chareindex( 'x' , Col1 )
等)
Table 最终结果:(此处的条件对第 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
什么 condition/s 以及应该如何放置才能达到这个结果集
- 您可以完全更改“基本代码”
- 您不知道 'Lastname' col(或 col3) 上的值
- 您必须保留 false 条件值的所有行和列值
- table大
另一种出题方式:(基于问题第一段)
对于 col1 中的值与 condition/s 相同的行,显示 Col3 中的值,如果不显示 NULL/empty 并保留所有行的 col2 值。
我不确定是否完全理解您想要做什么,但是 SELECT
CASE WHEN
可以解决您的问题吗?
这是一个例子:
SELECT
Col1,
Col2,
CASE WHEN (Condition) THEN NULL ELSE Col3 END AS Col3
FROM Table
它会return这个输出:
Col1 Col2 col3
----------- ---------- -----------
5 Value Value
21 Value NULL
7 Value Value
8 Value Value
40 Value NULL
使用这种方式,您有条件地 select 来自列的数据或 NULL
EDIT :关于 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