我想从表中选择像“Bo%”这样的名字或像“Ni%”这样的名字,我想给所有像 Bo 这样的名字一个特定的名字,给像 Ni 这样的所有名字一个特定的名字。但是,如果我给它一个别名,它就不起作用。
像'Bo%'这样的名字作为男性或像'Ni%'这样的名字作为女性。那么我该怎么做呢?
我想从表中选择像“Bo%”这样的名字或像“Ni%”这样的名字,我想给所有像 Bo 这样的名字一个特定的名字,给像 Ni 这样的所有名字一个特定的名字。但是,如果我给它一个别名,它就不起作用。
像'Bo%'这样的名字作为男性或像'Ni%'这样的名字作为女性。那么我该怎么做呢?
SQL 允许您为列或表设置别名。您不能在每个值的基础上替换列名称 - 名称需要保持一致,以便您可以在以后的操作中引用它。
您需要为要查看的每个选项指定一列:
SELECT CASE WHEN t.col LIKE 'Bo%' THEN t.col ELSE NULL END AS male,
CASE WHEN t.col LIKE 'Ni%' THEN t.col ELSE NULL END AS female
FROM YOUR_TABLE t
...但这意味着男性或女性列可能为空——如果两者都不LIKE
匹配,则两者都是:
name male female
-------------------
Bob Bob NULL
Nirmal NULL Nirmal
Xander NULL NULL