2013-07-31 134 views
0

我有一个学校作业,我有一个电子邮件地址的人名单。有三种类型的电子邮件地址:@gmail.com,@yahoo.com@hotmail.com。我需要创建一个列,其中显示所有@ gmail.com和@ yahoo.com电子邮件地址旁边的'Y',以及@ hotmail.com每个人旁边的'N'如何使用'INSTR'将值设置为电子邮件地址?

这是我到目前为止有:DECODE(INSTR(mail, LIKE '%gmail.com' AND '&yahoo.com'), 1, 'Y', 'N') c15

我不太清楚我在做什么错。

+2

您使用的是哪种数据库引擎? –

+0

显示您的完整查询 – Elias

+0

'我需要创建一个列......' - 这是否意味着数据库表中的计算列? –

回答

1
select case when INSTR(mail, 'gmail.com') > 0 or INSTR(mail, 'yahoo.com') > 0 
      then 'y' 
      else 'n' 
     end as c15 
0

你可以使用一个简单的CASE语句来确定正确的值(是或否),

SELECT email, CASE WHEN LIKE '%gmail.com' OR '%yahoo.com' THEN 'Y' ELSE 'N' END AS result 
FROM Yourtable 
0

利用于尔根·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行业,那么请在放弃和询问之前做一些调查并尝试一下。

相关问题