标记栏

时间:2019-10-01 09:13:29

标签: sql

我有3张桌子,根据特定条件加入它们后,我得到以下输出

name   assigned

abc    laptop
def    laptop  
def    Null
ghi    PC
ghi    Laptop
ghi    Null
jkl    Null
mno    pc
pqr    tablet
xyz    Null
xyz    Null

我想要一个新列并将其标记为“ 1”,即使给定名称的任何分配值都不为空。

O / P应该看起来像

name   assigned    Flag

abc    laptop      1
def    laptop      1
ghi    PC          1
jkl    Null        0
mno    pc          1
pqr    tablet      1
xyz    mobile      0

感谢您的帮助

2 个答案:

答案 0 :(得分:2)

使用CASE。尝试,喜欢:

SELECT name, assigned, CASE assigned IS NULL THEN 0 ELSE 1 END as flag FROM ...

答案 1 :(得分:0)

您可以尝试以下操作-使用coalesce()

SELECT name, max(assigned),coalesce(max(assigned),1,0) as flag
from tablename
group by name