Sql server 2008 r2 无法筛选多行的And和Or

Sql server 2008 r2 无法筛选多行的And和Or,sql-server-2008-r2,Sql Server 2008 R2,目前,我有一个表2 columns ColumnName,值,数据如下: ColumnName Value CustomerName Facebook CompanyName Google 如何使用和/或条件编写查询以满足请求: 与及: CustomerName='YAHOO'和CompanyName='Google'将返回0条记录 带有或: CustomerName='Facebook'或CompanyName='Google'将返回2条记录 我不知道该怎么开始 请告知 谢

目前,我有一个表2 columns ColumnName,值,数据如下:

ColumnName     Value
CustomerName   Facebook
CompanyName    Google
如何使用和/或条件编写查询以满足请求:

与及: CustomerName='YAHOO'和CompanyName='Google'将返回0条记录 带有或: CustomerName='Facebook'或CompanyName='Google'将返回2条记录 我不知道该怎么开始

请告知

谢谢。

您可以研究EAV数据模型,了解该模型无法很好扩展的原因

您可以这样查询:

declare @YourTable table (ColumnName varchar(100), Value varchar(100) primary key (ColumnName, Value));
insert into @YourTable
    select 'CustomerName', 'Facebook' union all
    select 'CompanyName', 'Google';



--with And...
select *
from    @YourTable 
where   (ColumnName = 'CustomerName' and Value = 'Yahoo') and
        (ColumnName = 'CompanyName' and Value = 'Google')

--with Or...
select *
from    @YourTable 
where   (ColumnName = 'CustomerName' and Value = 'Facebook') or
        (ColumnName = 'CompanyName' and Value = 'Google')

你的问题不清楚。你想要什么输出?