查询中的多个条件

时间:2018-07-03 08:39:22

标签: sql sql-server sql-server-2008

MyTable

ID | Name | Type 
---+------+-----
1  | asd  | A
2  | zxc  | B
3  | qwe  | A

第一个查询

select ID, TypeA_Name from MyTable Where Type = 'A' 

给予

ID | TypeA_Name
---+-----------
1  | asd
3  | qwe

第二次查询

select ID, TypeB_Name MyTable Where Type = 'B'  

给予

ID | TypeB_Name
---+-----------
2  | zxc

我在下面的单个查询中使用了TypeA_Name和TypeB_Name

select ID, TypeA_Name, TypeB_Name from MyTable

应该给予

ID | TypeA_Name | TypeB_Name
---+------------+-----------
1  | asd        | ---
2  | ---        | zxc
3  | qwe        | ---

那么我该如何构置where子句?谢谢

2 个答案:

答案 0 :(得分:3)

尝试一下:

select 
    ID,
    case when Type='A' then Name else null end as TypeA_Name,
    case when Type='B' then Name else null end as TypeB_Name
from MyTable

您可以正常使用WHERE,例如Where Type = 'A'

答案 1 :(得分:-1)

您可以执行以下操作:

select ID , Name from MyTable Where Type = 'A' OR Type = 'B'