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 语句查询判断是不是为空并关联的主要内容,如果未能解决你的问题,请参考以下文章