我有一份学校作业,我有一份电子邮件地址列表。有三种类型的电子邮件地址:@gmail.com
,@yahoo.com
和@hotmail.com
。我需要创建一个列,在所有@ gmail.com和@ yahoo.com电子邮件地址旁边显示'Y'
,并在@ hotmail.com旁边显示一个'N'
。
这是我到目前为止所做的:DECODE(INSTR(mail, LIKE '%gmail.com' AND '&yahoo.com'), 1, 'Y', 'N') c15
我不太确定我做错了什么。
答案 0 :(得分:1)
select case when INSTR(mail, 'gmail.com') > 0 or INSTR(mail, 'yahoo.com') > 0
then 'y'
else 'n'
end as c15
答案 1 :(得分:0)
您可以使用简单的CASE语句来确定正确的值(y或n),
SELECT email, CASE WHEN LIKE '%gmail.com' OR '%yahoo.com' THEN 'Y' ELSE 'N' END AS result
FROM Yourtable
答案 2 :(得分:0)
利用Juergen D的答案:
select case when INSTR(mail, 'gmail.com') > 0 or INSTR(mail, 'yahoo.com') > 0
then 'y'
case when INSTR(mail, 'hotmail.com') > 0
then 'n'
else 'n'
end as c15
我相信明确定义,但最终它是相同的答案。此外,如果你期望进入IT职业生涯,那么做一些研究并在放弃和询问之前尝试一下!