sql:喜欢任何vs像所有

Ada*_*dam 5 sql teradata

我无法弄清楚为什么有时LIKE需要ANY,有时候需要ALL,这让我很疯狂.我觉得我应该能够在两种情况下都使用ANY(我试图在括号中的任何正则表达式之后选择记录).

出于某种原因,第一个LIKE,有任何一个,工作得很好 - 它返回所有记录与狗食,谱系或beneful.

然而,第二个LIKE需要ALL.否则它不会遗漏带有零食,供应或潮湿的记录.但为什么?我觉得这里的任何形式都是合适的形式.

where dsc_item like any ('%DOG CHOW%','%PEDIGREE%','%BENEFUL%')
and dsc_comm not like all ('%TREATS%','%SUPPLIES%', '%WET%')
Run Code Online (Sandbox Code Playgroud)

dno*_*eth 6

LIKE ANY转换为OR编辑状态,但LIKE ALLAND:

where
 (    dsc_item like '%DOG CHOW%'
   OR dsc_item like '%PEDIGREE%','%BENEFUL%'
 )
and
 (     dsc_comm not like '%TREATS%' 
   AND dsc_comm not like '%SUPPLIES%'
   AND dsc_comm not like '%WET%'
 )
Run Code Online (Sandbox Code Playgroud)

如果更换ANDOR它就像col <> 1 OR col <> 2是为每个非空行真.