在今天的查询中,我想从两个不同表的两列中的任意一列中选择具有特定公司名称的行。我做到了
WHERE (N.COMPANY LIKE '%ACME%' OR C.COMPANY LIKE '%ACME%')
首先,运行需要 20 分钟,这很奇怪,因为如果我只过滤其中一列,它需要大约 10 秒。其次,当它完成时,当我知道数据库中有这些记录中这些列的值时,某些行中某些列的值为 NULL。那么这里发生了什么?为什么 SQL 不能对两个表中的两列进行 OR 运算?
(我用一个 UNION 解决它 - 我运行它C.COMPANY LIKE '%ACME%'
并用一个 UNIONED 它SELECT... WHERE N.COMPANY LIKE '%ACME%'
)