但是日志那里又必须为哪些条件没符合做个记录
不知道能不能实现的?总不可能事后在一个个条件去反查,十几个太恐怖了
希望知道的给我个思路谢谢
16 个解决方案
#1
你的是比较特殊支持下吧
#2
写一个SQL查询不符合条件的,WHERE条件跟你符合语句的条件相反。
#3
select * from tb wherenot exists(select * from tb where conditions1='tiaojian'...)...
#4
一个条件是可以这样,但十几个呢?需要精确到具体哪个条件的呢
#5
多少个都是一样的
select * from tb
except
select * from tb where 条件1 and 条件2 and 条件3 and ...
select * from tb
except
select * from tb where 条件1 and 条件2 and 条件3 and ...
#6
谢谢!except是取差集,但是我的需求是想取哪个条件没符合才造成没筛选出来,我要查出的是条件而不是集合呢
#7
你的意思是要找出每条不符合条件的结果,所缺少的是那个where条件而被剔除的?
#8
那你就
select * from tb
except
select * from tb where 条件1 看看结果
然后再
select * from tb
except
select * from tb where 条件1 and 条件2 比较两次的结果集做比对或嵌套查询
#9
;with cet as(select * from tb
except
select * from tb where 条件1 and 条件2 and 条件3 and ...)
select case when 条件1 then '' esle '条件1' end +
case when 条件2 then '' esle '条件2' end +
... as 缺少的条件 from cet
#10
where子句里,所有原来的条件取反向的,然后and换成or。
比如col1>3就换成col1<=3。
比如col1>3就换成col1<=3。
#11
但是我的需求是想取哪个条件没符合才造成没筛选出来,我要查出的是条件而不是集合呢
这个需求有些难办哦
这个需求有些难办哦
#12
是的呢,我都块炸了,确实不好弄
哎,再试试9l的办法,不行就结贴算了
#13
要知道 某一行因为什么条件 不满足 而没有被 筛选出来,还要做标记,
做一个临时表,放入不满足条件的 数据,再增加一个 标记列
1个条件一个条件的查询?这样可明确知道是哪个条件不满足,然后修改标记列?
不过这样的话,很麻烦,效率也成问题
做一个临时表,放入不满足条件的 数据,再增加一个 标记列
1个条件一个条件的查询?这样可明确知道是哪个条件不满足,然后修改标记列?
不过这样的话,很麻烦,效率也成问题
#14
确实是的.效率非常成问题..郁闷呐
#15
你标记查询到的,跟标记没有查询到的不是一样的效果吗?
那你何不就利用你的查询条件,直接更新表查询到的数据对应的字段?
那你何不就利用你的查询条件,直接更新表查询到的数据对应的字段?
#16
经过测试这个方案特别好,真是非常感谢你!
#1
你的是比较特殊支持下吧
#2
写一个SQL查询不符合条件的,WHERE条件跟你符合语句的条件相反。
#3
select * from tb wherenot exists(select * from tb where conditions1='tiaojian'...)...
#4
一个条件是可以这样,但十几个呢?需要精确到具体哪个条件的呢
#5
多少个都是一样的
select * from tb
except
select * from tb where 条件1 and 条件2 and 条件3 and ...
select * from tb
except
select * from tb where 条件1 and 条件2 and 条件3 and ...
#6
谢谢!except是取差集,但是我的需求是想取哪个条件没符合才造成没筛选出来,我要查出的是条件而不是集合呢
#7
你的意思是要找出每条不符合条件的结果,所缺少的是那个where条件而被剔除的?
#8
那你就
select * from tb
except
select * from tb where 条件1 看看结果
然后再
select * from tb
except
select * from tb where 条件1 and 条件2 比较两次的结果集做比对或嵌套查询
#9
;with cet as(select * from tb
except
select * from tb where 条件1 and 条件2 and 条件3 and ...)
select case when 条件1 then '' esle '条件1' end +
case when 条件2 then '' esle '条件2' end +
... as 缺少的条件 from cet
#10
where子句里,所有原来的条件取反向的,然后and换成or。
比如col1>3就换成col1<=3。
比如col1>3就换成col1<=3。
#11
但是我的需求是想取哪个条件没符合才造成没筛选出来,我要查出的是条件而不是集合呢
这个需求有些难办哦
这个需求有些难办哦
#12
是的呢,我都块炸了,确实不好弄
哎,再试试9l的办法,不行就结贴算了
#13
要知道 某一行因为什么条件 不满足 而没有被 筛选出来,还要做标记,
做一个临时表,放入不满足条件的 数据,再增加一个 标记列
1个条件一个条件的查询?这样可明确知道是哪个条件不满足,然后修改标记列?
不过这样的话,很麻烦,效率也成问题
做一个临时表,放入不满足条件的 数据,再增加一个 标记列
1个条件一个条件的查询?这样可明确知道是哪个条件不满足,然后修改标记列?
不过这样的话,很麻烦,效率也成问题
#14
确实是的.效率非常成问题..郁闷呐
#15
你标记查询到的,跟标记没有查询到的不是一样的效果吗?
那你何不就利用你的查询条件,直接更新表查询到的数据对应的字段?
那你何不就利用你的查询条件,直接更新表查询到的数据对应的字段?
#16
经过测试这个方案特别好,真是非常感谢你!