Snowflake cloud data platform 雪花模式匹配与内部连接
在snowflake中,我们可以基于regex/substring而不是完全相等,在两个表之间的列上联接吗 例如,在表A/列A和表B/列B中,获取列A是列B的子字符串的所有记录Snowflake cloud data platform 雪花模式匹配与内部连接,snowflake-cloud-data-platform,Snowflake Cloud Data Platform,在snowflake中,我们可以基于regex/substring而不是完全相等,在两个表之间的列上联接吗 例如,在表A/列A和表B/列B中,获取列A是列B的子字符串的所有记录 我提到了REGEXP_SUBSTR、SUBSTR、SUBSTRING,并包含雪花函数,但不知道如何将其用作内部联接的一部分。您可以使用SUBSTRING、charindex函数,可能还有一些REGEXP命令,这里有几个过于简单的示例 CREATE TABLE table_a (column_a VARCHAR(100))
我提到了REGEXP_SUBSTR、SUBSTR、SUBSTRING,并包含雪花函数,但不知道如何将其用作内部联接的一部分。您可以使用SUBSTRING、charindex函数,可能还有一些REGEXP命令,这里有几个过于简单的示例
CREATE TABLE table_a (column_a VARCHAR(100));
INSERT INTO table_a VALUES ('hello world'),('testing 123'),
('I like Jelly'),('this is a good question');
CREATE TABLE table_b (column_b VARCHAR(100));
INSERT INTO table_b VALUES ('this is table b'),('world'),
('jelly'),('Netflix or Hulu?'),('Goodbye');
SELECT a.*
FROM table_a a
INNER JOIN table_b b
ON SUBSTR(a.column_a, CHARINDEX(' ', a.column_a) + 1, length(a.column_a))
= b.column_b;
--1 row selected, 'hello world'
SELECT a.*, b.*
FROM table_a a,
table_b b
WHERE CHARINDEX(UPPER(b.column_b), UPPER(a.column_a)) > 0;
--2 rows selected, 'hello world'/world & 'I like Jelly'/jelly