sql 语句查询判断是不是为空并关联

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql 语句查询判断是不是为空并关联相关的知识,希望对你有一定的参考价值。

如图,第二列和第三列都放的是关联ID,一个有,另一个就为空,我现在要查这张产品表,查出ID,上传者,上传者就是 customer_id 和 manager_id 中存在的,并关联另外两张表,SQL语句应该怎么写。求大神指点。

用Case 语句可以将两列合有一列,然后用结果作为一个表去关联其它表就可以
Select * from

(Select Case when customer_id is null then manager_id else customer_id end as customer_id from table) as a

left join b on a.customer_id=b.customer_id ...........追问

customer_id 关联 customer表,manager_id关联 manager表。。。还是有点不能明白,可以再详细点吗,麻烦了。

追答

你两个字段关联不同的表,那你就不能这样做了,你可以单独查出两个结果再用union把查询结果连到一起,,不过要注意表结果是否一样,不一样就要控制输出字段

select * from table_a as a left join customer as b on a.customer_id=b.customer_id where a.customer_id is not null
union
select * from table_a as a left join manager as b on a.manager_id=b.manager_id where a.manager_id is not null

追问

谢谢,可以了

参考技术A 在楼上的基础上是不是还可以再简单一些
select *
from table_a as a
left join customer b
on a.customer_id = b.customer_id
left join manager c
on a.manager_id = c.manager_id
where a.customer_id is not null
or a.manager_id is not null

sql判断字段是不是为空

1、创建测试表,

create table test_null(id varchar2(20),value varchar2(20));

2、插入测试数据;

insert into test_null values(1,'123');

insert into test_null values(2,'abc');

insert into test_null values(3,'');

insert into test_null values(4,'456');

3、查询表中全量数据;select t.*, rowid from test_null t;

4、编写语句,查询表中value为空的记录;

   select t.*, rowid from test_null t where value is null;

参考技术A 啥意思?

sqlserver有isnull()函数的
select * from 表 where isnull(字段,‘’)=‘’就是空
select * from 表 where isnull(字段,‘’)<>‘’就不为空本回答被提问者和网友采纳
参考技术B sql server 中使用 is null 或 is not null 来处理列的空值。

语法为:
列名 is null (字段为空返回true ,不为空返回 false)
列名 is not null (字段为空返回false,不为空返回 true)

例:
select case when a is null then 1 else 0 end from aaa

语法大意:如果a列 为空显示1,不为空显示0
参考技术C ISNULL(字段,'')=''即为空
len(ISNULL(字段,''))>0不为空
select * from 表 where 字段 is null "找出字段为空的数据"
select * from 表 where 字段 is not null "找出字段不为空的数据"
参考技术D 查数据表中,tb_name字段为null的语句
select * from tablename where tb_name is null

以上是关于sql 语句查询判断是不是为空并关联的主要内容,如果未能解决你的问题,请参考以下文章

如何用SQL语句来判断查询结果为空?

sql判断字段是不是为空

sql 查询语句怎么判断一个字段为空

Oracle中查询某字段不为空的SQL语句怎么写

php 判断一个字段是不是为空,为空的话执行一段sql语句

SQL判断字段是不是为空,为NULL