如何使用“INSTR”将值设置为电子邮件地址?

时间:2013-07-31 14:37:32

标签: sql

我有一份学校作业,我有一份电子邮件地址列表。有三种类型的电子邮件地址:@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

我不太确定我做错了什么。

3 个答案:

答案 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职业生涯,那么做一些研究并在放弃和询问之前尝试一下!