0

我有一个学校作业,其中有一个包含电子邮件地址的人员列表。电子邮件地址分为三种类型:@gmail.com@yahoo.com@hotmail.com。我需要创建一个列,显示'Y'所有@gmail.com 和@yahoo.com 电子邮件地址的'N'旁边,以及@hotmail.com 的每个人的旁边。

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

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

4

3 回答 3

1
select case when INSTR(mail, 'gmail.com') > 0 or  INSTR(mail, 'yahoo.com') > 0
            then 'y'
            else 'n'
       end as c15
于 2013-07-31T14:40:06.107 回答
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 职业,那么请在放弃和询问之前进行一些研究并尝试一下!

于 2013-07-31T14:44:22.103 回答
0

您可以使用简单的 CASE 语句来确定正确的值(y 或 n),

SELECT email, CASE WHEN LIKE '%gmail.com' OR '%yahoo.com' THEN 'Y' ELSE 'N' END AS result 
FROM Yourtable
于 2013-07-31T14:42:24.437 回答