SQL查询将男性显示为“M”,女性显示为“F”[重复]
Posted
技术标签:
【中文标题】SQL查询将男性显示为“M”,女性显示为“F”[重复]【英文标题】:SQL query to display Male as “M” and Female as “F” [duplicate] 【发布时间】:2017-06-13 16:31:52 【问题描述】:如何编写 SQL 查询以从下表中将男性显示为“M”,将女性显示为“F”:
TableA
Name Gender
JOHN Male
ANSARI Female
BABILONA Male
KEZCSEELO Male
RAJINI Male
LOSEC Female
NHOJ Female
【问题讨论】:
你有没有尝试过什么? 也许左边(性别,1) 【参考方案1】:使用Case
声明
Select
Name,
Case when Gender = 'Male' then 'M' when Gender = 'Female' then 'F' else 'Other' end
from TableA
【讨论】:
这会出错,应该是Case when Gender = 'Male' then 'M' when Gender = 'Female' then 'F' else 'Other' end
@tompreston 好地方,改了【参考方案2】:
在这种情况下,由于“M”和“F”是第一个字符,您可以只使用 SUBSTRING。
SELECT Name,
SUBSTRING(Gender, 1,1)
FROM tableA
【讨论】:
如果列中的值不是男性或女性,我唯一要添加的可能是一些要处理的逻辑,尽管这不是标准的一部分。我最喜欢的答案仍然是。 没想到,还蛮整齐的【参考方案3】:试试这个:
select name
, case when gender = 'Male' then 'M' when gender = 'Female' then 'F' else 'Unknown' end
from tableA
【讨论】:
【参考方案4】:我无法发表评论,所以我要对 John Pasquet 已经给出的答案进行小幅更新。 Shaulinator 已经指出,我们不知道性别列背后的逻辑,但我仍然认为您希望确保 M/F 是资本,所以我添加了上层函数
SELECT Name,
UPPER(SUBSTRING(Gender, 1,1))
FROM tableA
【讨论】:
以上是关于SQL查询将男性显示为“M”,女性显示为“F”[重复]的主要内容,如果未能解决你的问题,请参考以下文章