在 Netezza 中使用 LIKE 运算符加入
Joining Using LIKE operator in Neteeza
我有一个 table 像:
我正在加入另一个 table:
我想要得到如下所示的输出 table:
我发现我的 Netezza 版本不支持 concat 但支持 ||反而。我尝试使用 LIKE 运算符加入 table,如下所示:
SELECT A.*, CASE WHEN A.GENERIC_NAME LIKE ('%'||B.O_DRUGS||'%') THEN B.DRUG_CLASS ELSE NULL END AS OTHER_DRUGS FROM DRUG1 AS A LEFT JOIN DRUG_LIST AS B ON A.GENERIC_NAME LIKE ('%'||O_DRUGS||'%');
该代码适用于精确匹配,但模糊匹配仍然无效。显然,我没有为此目的正确使用 like 运算符。
有什么建议吗??
你的LIKE
条件向后看:
FROM DRUG1 D1 LEFT JOIN
DRUG_LIST DL
ON DL.O_DRUGS LIKE '%' || D1.GENERIC_NAME || '%'
注意:Table别名如a
一般是没有意义的。使用 table 名称的缩写。
我有一个 table 像:
我正在加入另一个 table:
我想要得到如下所示的输出 table:
我发现我的 Netezza 版本不支持 concat 但支持 ||反而。我尝试使用 LIKE 运算符加入 table,如下所示:
SELECT A.*, CASE WHEN A.GENERIC_NAME LIKE ('%'||B.O_DRUGS||'%') THEN B.DRUG_CLASS ELSE NULL END AS OTHER_DRUGS FROM DRUG1 AS A LEFT JOIN DRUG_LIST AS B ON A.GENERIC_NAME LIKE ('%'||O_DRUGS||'%');
该代码适用于精确匹配,但模糊匹配仍然无效。显然,我没有为此目的正确使用 like 运算符。 有什么建议吗??
你的LIKE
条件向后看:
FROM DRUG1 D1 LEFT JOIN
DRUG_LIST DL
ON DL.O_DRUGS LIKE '%' || D1.GENERIC_NAME || '%'
注意:Table别名如a
一般是没有意义的。使用 table 名称的缩写。