如果包含新变量SQL的语句

时间:2019-07-24 21:01:02

标签: mysql domo

需要帮助纠正我的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

1 个答案:

答案 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
);