【问题标题】:Unable to compare two columns using like operator in snowflake无法在雪花中使用 like 运算符比较两列
【发布时间】:2022-12-16 15:09:15
【问题描述】:

我有一张包含干净城市名称的表(表 1)和另一张包含不干净城市名称数据的表(表 2)。

样本数据: 表1 城市:博帕尔 Table2 城市:shivaji nagar, bhopal

我正在尝试使用 like 运算符将 table1.city 与 table2.city 进行比较,并将 table1.city 作为输出列。

我尝试了以下查询。

select * from table2, table1 where table1.city_name like '%'+table2.city_name+'%'

我收到一条错误消息,提示“无法识别数值‘%’”

【问题讨论】:

  • 使用运算符 LIKE 而不是 = 有什么特殊原因吗?

标签: sql snowflake-cloud-data-platform


【解决方案1】:

Snowflake 使用 ANSI 运算符 || 进行字符串连接,而不是 +。此外,您需要说明第二个城市类似于/包含第一个城市,而不是相反。

SELECT t1.city_name
FROM table1 t1
WHERE EXISTS (
    SELECT 1
    FROM table2 t2
    WHERE t2.city_name LIKE '%' || t1.city_name || '%'
);

【讨论】:

    猜你喜欢
    • 2019-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-04-19
    • 2021-01-20
    • 2019-03-29
    相关资源
    最近更新 更多