是否可以将值向量与 SQL 中表的所有列进行比较,更具体地说是在 MS SQL Server 中?
例如,我有一个表,EXAMPLE,有 3 列:
EXAMPLE: ColA, ColB, ColC
我想检查它的列是否与特定向量匹配:('val0', 'val1', 'val2')
我知道我可以用这样的句子做到这一点:
SELECT * FROM EXAMPLE WHERE ColA='val0' AND ColB = 'val1' AND ColC = 'val2'
但是我想知道是否有一些函数 ALLEQUAL 可以让我做类似的事情:
SELECT * FROM EXAMPLE WHERE ALLEQUAL('val0', 'val1', 'val2');
我知道,如果该函数存在,它的语法在不同的 RDBMS 之间可能会有很大不同,我现在专注于 Ms SQL Server。不过,如果您能给我提供其他数据库管理器中的示例,我将非常高兴。
最佳答案
declare @Foo as Table ( ColA Int, ColB Int );
insert into @Foo ( ColA, ColB ) values ( 1, 1 ), ( 1, 2 ), ( 2, 1 );
select * from @Foo;
select *
from @Foo
intersect
select *
from ( values ( 2, 1 ) ) as Bar( ColA, ColB );
关于sql - 与所有列进行比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17969477/