查询多个列中任意一列满足条件的数据

时间:2021-01-11 02:55:58
一张表有11个字段,第一个字段为主键,其余10个字段为number型
我想取得表中任意一个字段有0的所有数据
我只会
select * from T where c1=0 or c2=0 or c3=0 ....
有没有更简便的写法,求教

8 个解决方案

#1


有人知道么?
再延伸一下,如果查询任意一个字段满足多个条件,应该怎么写
比如上面的例子,查询任意一个字段等于0,1,2的数据
select * from T where c1=0 or c1=1 or c1=2 or c2=0 or c2=1 or c2=2 ...
只能这么写么

#2


在线等,求大神帮忙 查询多个列中任意一列满足条件的数据

#3


select * from T where c1*c2*c3...=0

#4


select * from t where least(abs(c1),abs(c2),abs(c3).....)=0

#5


引用 3 楼 wushangjimo 的回复:
select * from T where c1*c2*c3...=0

顶一个,比较妙,多字段用用 IN 比较直观

#6


引用 楼主 stiff_neck 的回复:
一张表有11个字段,第一个字段为主键,其余10个字段为number型
我想取得表中任意一个字段有0的所有数据
我只会
select * from T where c1=0 or c2=0 or c3=0 ....
有没有更简便的写法,求教


不知道具体应用如何,可以建立一个视图,把列转为行。。。

#7


引用 3 楼 wushangjimo 的回复:
select * from T where c1*c2*c3...=0

试了一下,貌似只能取到最后一个列满足条件的数据

#8


引用 4 楼 u010412956 的回复:
select * from t where least(abs(c1),abs(c2),abs(c3).....)=0

取的数据不全,似乎只取到了第一列满足条件并且其他列不为null的数据

#1


有人知道么?
再延伸一下,如果查询任意一个字段满足多个条件,应该怎么写
比如上面的例子,查询任意一个字段等于0,1,2的数据
select * from T where c1=0 or c1=1 or c1=2 or c2=0 or c2=1 or c2=2 ...
只能这么写么

#2


在线等,求大神帮忙 查询多个列中任意一列满足条件的数据

#3


select * from T where c1*c2*c3...=0

#4


select * from t where least(abs(c1),abs(c2),abs(c3).....)=0

#5


引用 3 楼 wushangjimo 的回复:
select * from T where c1*c2*c3...=0

顶一个,比较妙,多字段用用 IN 比较直观

#6


引用 楼主 stiff_neck 的回复:
一张表有11个字段,第一个字段为主键,其余10个字段为number型
我想取得表中任意一个字段有0的所有数据
我只会
select * from T where c1=0 or c2=0 or c3=0 ....
有没有更简便的写法,求教


不知道具体应用如何,可以建立一个视图,把列转为行。。。

#7


引用 3 楼 wushangjimo 的回复:
select * from T where c1*c2*c3...=0

试了一下,貌似只能取到最后一个列满足条件的数据

#8


引用 4 楼 u010412956 的回复:
select * from t where least(abs(c1),abs(c2),abs(c3).....)=0

取的数据不全,似乎只取到了第一列满足条件并且其他列不为null的数据