sql - 与所有列进行比较

标签 sql sql-server-2008

是否可以将值向量与 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/

相关文章:

php - MySQL 加盟亏本

php - 从 mysql 中的 2 个表中获取数据(需要帮助)

sql - T-Sql 按 MIN() 选择和分组

sql-server - SQL 服务器 : What are ODBC canonical functions?

sql - 建模 NoSQL 数据库(从 SQL 数据库转换时)

mysql - 提高用于报告生成的临时表查询的性能

mysql - 如何匹配一列中的所有行

sql - 处理 if a>b 的最佳方法

sql - 为临时表创建 To 脚本

sql - 从此 sql server 文章翻页的有效方法