我需要运行一个查询,该查询将为我提供一列中所有条目的列表,这些条目与另一列中的任何条目都不一样,即:
SELECT DISTINCT columnA
FROM tableA
WHERE columnA NOT LIKE (SELECT columnB FROM tableA)
显然,上面的查询不起作用,我提供它只是希望它能阐明我想要实现的目标。因此,例如,假设我的列包含以下内容:
COLUMNA:
ABCD
ABCE
BCDE
BCDF
BCDEF
GHIJ
GHIK
COLUMNB:
ABC
DEF
HIJ
我想要的结果是:
BCDE
BCDF
GHIK
表中一列共有 396 个值,因此仅手动输入值是不可行的。此外,如示例中所述,columnB 中的值将始终是 columnA 中值的子字符串,因此我还需要让我的查询在进行比较时牢记这一点。
预先感谢任何人可以提供的任何帮助,如果这个问题已经在其他地方得到回答,也很抱歉 - 我进行了搜索,但找不到任何我可以解释为解决这个特定要求的东西。
添加新信息* *
因此,如前所述,我犯了一个巨大的错误,因为这两列位于不同的表中。尽管如此,修改 califax 的建议很容易,如下所示:
SELECT DISTINCT COLUMNA 从 TABLE1 T1 LEFT JOIN TABLE2 T2 ON T1.COLUMNA LIKE '%' + T2.COLUMNB + '%' AND T2.COLUMNB 为 NULL
但是,它仍然从 COLUMNA 返回完整的条目列表。我已经确认 COLUMNB 中有条目是 COLUMNA 中条目的子字符串 - 知道为什么这不是过滤吗?
谢谢。