gpt4 book ai didi

mysql - 为什么我的 case 语句返回 NULL 值,而我认为它不应该返回?

转载 作者:行者123 更新时间:2023-11-29 21:01:42 25 4
gpt4 key购买 nike

问题位于底部,但简而言之,即使链接与我的 case 表达式匹配,我正在创建的表也会为字段 Division 提供 Null 值,而且我似乎找不到原因。

我正在创建一个表,根据程序内的链接 url 分配部门:

create table set_divisions as
select distinct campaign, offer,
case
when upper(link) like '%NORTH%' then 'NORTH'
when upper(link) like '%SOUTH%' then 'SOUTH'
when upper(link) like '%EAST%' then 'EAST'
when upper(link) like '%WEST%' then 'WEST'
ELSE NULL
END AS DIVISION
FROM TABLE A;

然后我在 Division 中得到了很多 NULL,所以我试图看看我丢失了哪些链接,因为它们都应该在 Division 中具有值。每个事件确实有多个链接,其中一些链接与北、南、东或西无关,但每个事件还应包含案例陈述中的这些链接之一。

然后我运行以下命令:

select distinct link
from A, set_divisions S
where A.campaigncode = S.campaigncode
and A.offercode = S.offercode
and (
upper(link) like '%NORTH%'
or upper(link) like '%SOUTH%'
or upper(link) like '%EAST%'
or upper(link) like '%WEST%');

返回的结果包含包含 NORTHSOUTHEASTWEST 的链接。

所以我的问题是在创建表时我在 case 表达式中做错了什么,导致它错过这些链接?

丢失链接的示例是(我只使用了南和东,但所有四个都有类似的链接):

http://product.south.com/information/preference
http://sports.east.com/unsubscribe/?email=%%Linkurl9%%

谢谢,这是我的第一篇文章,所以如果我错过了某些内容或者我的代码看起来很糟糕,我会提前道歉,哈哈。

雷格洛

最佳答案

在第二个查询中,您的 WHERE 子句指定链接必须包含 NORTH、SOUTH、EAST 或 WEST。您的第一个查询不包含类似的 WHERE 子句。

您可以运行此命令来查找不包含 NORTH、SOUTH、EAST 或 WEST 的链接以进行故障排除:

select distinct link
from A, set_divisions S
where A.campaigncode = S.campaigncode
and A.offercode = S.offercode
and upper(link) not like '%NORTH%'
and upper(link) not like '%SOUTH%'
and upper(link) not like '%EAST%'
and upper(link) not like '%WEST%');

关于mysql - 为什么我的 case 语句返回 NULL 值,而我认为它不应该返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37169024/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com