如何在Col3中显示Col1值为真,而Col1中的假值仅在Col3中显示NULL

  • 本文关键字:显示 Col1 Col3 NULL sql-server t-sql ssms
  • 更新时间 :
  • 英文 :

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值。

我不确定是否完全理解你想做什么,但是SELECTCASE 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

相关内容

  • 没有找到相关文章

最新更新