Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql WHERE语句中的CASE语句(等于和不等于)_Sql_Sql Server_Tsql - Fatal编程技术网

Sql WHERE语句中的CASE语句(等于和不等于)

Sql WHERE语句中的CASE语句(等于和不等于),sql,sql-server,tsql,Sql,Sql Server,Tsql,我有下面的查询,其中我试图根据位变量的值从表中返回不同的值 有没有一种方法可以替代where条件使其工作 DECLARE @isAggregate bit = 0 SELECT * FROM Fields WHERE FieldType CASE WHEN @isAggregate = 1 THEN = 'Aggregate' WHEN @isAggregate = 0 THEN <> 'Aggregate'

我有下面的查询,其中我试图根据位变量的值从表中返回不同的值

有没有一种方法可以替代where条件使其工作

DECLARE @isAggregate bit = 0

SELECT 
    *
FROM
    Fields
WHERE
    FieldType  
    CASE 
        WHEN @isAggregate = 1 THEN = 'Aggregate'
        WHEN @isAggregate = 0 THEN <> 'Aggregate'
    END
DECLARE@isAggregate位=0
选择
*
从…起
领域
哪里
字段类型
案例
当@isAggregate=1时,则为“聚合”
当@isAggregate=0时,则为“聚合”
终止

您可以使用布尔逻辑,case
表达式将不会以这种方式工作:

where (@isAggregate = 1 and FieldType = 'Aggregate') or
      (@isAggregate = 0 and FieldType <> 'Aggregate')
其中(@isAggregate=1,FieldType='Aggregate')或
(@isAggregate=0且字段类型为“聚合”)

您可以使用布尔逻辑,case
表达式将不会以这种方式工作:

where (@isAggregate = 1 and FieldType = 'Aggregate') or
      (@isAggregate = 0 and FieldType <> 'Aggregate')
其中(@isAggregate=1,FieldType='Aggregate')或
(@isAggregate=0且字段类型为“聚合”)
演示如何在
连接
条件下使用
大小写
表达式。它在
where
子句中的工作方式相同。根据所涉及的逻辑,可能有更有效的方法来编写查询。演示如何在
联接
条件中使用
大小写
表达式。它在
where
子句中的工作方式相同。根据所涉及的逻辑,可能有更有效的方法来编写查询。