本文介绍了SQL中的连接AND行为异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

尝试在大型查询中查找问题,我已将导致意外结果的原因缩小为我不理解的行为.

阶段:

简易表:

Trying to find the problem in a large query I''ve narrowed the cause for unexpected results to a behaviour I do not comprehend.

Stage:

Simple table:

id	voucherid	orgid	perid	listtype
14	10		0	0		0
15	10		0	203986	        0
16	10		151735	0		0
19	9		0	203986	        1
20	9		151735	0		1	



简单查询:



Simple Query:

DECLARE @per int
DECLARE @org int
SET @per = 203986
SET @org = 1517351
SELECT * FROM [voucher2contact]
WHERE 
		[perid] <> @per AND 
		[orgid] <> @org AND
		listtype = 1 



返回一行



Returns one line

id	voucherid	orgid	perid	listtype
20	9	        151735	0	1



-编辑-

这是更正的版本:



-EDIT-

This is the corrected version:

-- listtype 0 ->Whitelisted
-- listtype 1 ->Blacklisted
-- Return not Blacklisted entries for @per + @org


的未列入黑名单的条目




DECLARE @per int
DECLARE @org int
SET @per = 203986
SET @org = 151735

SELECT *
    FROM [ERA].[dbo].[voucher2contact]
    WHERE
    (
        (
            ([perid] <> @per AND [perid] > 0)
        )
        OR
        (
            ([orgid] <> @org AND [orgid] > 0)
        )
    )AND
    listtype = 1



对自己的注意:编码超过14小时后,不要问愚蠢的问题;)

THX寻求帮助:D



Note to self : Do not ask stupid questions after more than 14hrs of coding ;)

THX for the help :D

推荐答案



这篇关于SQL中的连接AND行为异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-30 04:22