需要帮助纠正我的if语句代码以创建新变量。
这是为了帮助为我的业务清理项目的数据集。我想在一个列中搜索多个值,如果该列包含这些值中的任何一个,它将将该值添加到另一列中。自从我在学校学习sql以来已经有一段时间了,我的代码需要一些帮助。
我目前正在使用Domo / MySQL工具编写代码。本质上,我想在URL中找到一个广告商名称,然后将该广告商返回到新列中并将其添加到数据集中。
我已经尝试了一些方法,但不确定使用什么。
Select `Page`
from `google_analytics_automation_test`
ALTER TABLE `google_analytics_automation_test`
ADD COLUMN Advertiser varchar(255) NOT NULL;
alter table `google_analytics_automation_test`
Add Advertiser AS
(CASE WHEN `Page` LIKE '%Aloxxi%' THEN Advertiser IS 'Aloxxi'
WHEN `Page` LIKE '%Alfaparf%' THEN Advertiser IS 'AlfaParf'
ELSE 'NA'
)
END AS 'Advertiser'
FROM `google_analytics_automation_test`;
我希望代码搜索一列并返回给定的所有广告商列表的广告商名称。然后将该新列添加到名为x的数据集中。
如果col.a包含苹果,则col.b是Apple 如果col.a包含novalash,则col.b是Nova Lash
EX:
Col A Col B
www.google.com/apple Apple
www.modernsalon.com/set-of-novalash-eyelash-extensions Nova Lash
答案 0 :(得分:0)
检查一下CASE的语法,其中有很多不必要的IS,AS和[列名]。
正确的语法-
ALTER TABLE google_analytics_automation_test
ADD COLUMN Advertiser varchar(255) AS (
CASE WHEN Page LIKE '%Aloxxi%' THEN 'Aloxxi'
WHEN Page LIKE '%Alfaparf%' THEN 'AlfaParf'
ELSE 'NA'
END
);