加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MsSql教程 > 正文

SQL HELP – 基于BIT变量的条件where子句 – SQL Server

发布时间:2020-12-12 08:52:30 所属栏目:MsSql教程 来源:网络整理
导读:我需要帮助编写条件where子句.这是我的情况: 我有一个值可以决定在select语句中返回哪些行.如果值为true,我需要返回import_id列不为空的行,如果为false,那么我想要import_id列为空的行. 我尝试这样的一个查询(下面)似乎不起作用,最好的方法是什么? DECLARE
我需要帮助编写条件where子句.这是我的情况:

我有一个值可以决定在select语句中返回哪些行.如果值为true,我需要返回import_id列不为空的行,如果为false,那么我想要import_id列为空的行.

我尝试这样的一个查询(下面)似乎不起作用,最好的方法是什么?


DECLARE @imported BIT

SELECT id,import_id,name FROM Foo WHERE
    (@imported = 1 AND import_id IS NOT NULL)
    AND (@imported = 0 AND import_is IS NULL)

谢谢.

解决方法

将AND更改为OR
DECLARE @imported BIT

SELECT id,name FROM Foo WHERE
    (@imported = 1 AND import_id IS NOT NULL)
    OR (@imported = 0 AND import_is IS NULL)

分解您的原始声明

你基本写了

@imported = 1 
    AND import_id IS NOT NULL
    AND @imported = 0 
    AND import_is IS NULL

相当于

@imported = 1 AND @imported = 0 
    AND import_id IS NOT NULL AND import_is IS NULL

什么导致两对完全否定对方的条款

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读