sql语句之if & IFNULL

   今天有这样一个需求,读取一个公司的直辖工程师(公司内部的工程师)和外协工程师(公司的服务商的工程师)

     【这里使用的是MySQL】

【工程师都在engineer表中,所有的该机构的直辖工程师也都在此表中 ,该机构的外协工程师在other_engineer表中,《这个表中包含了该工程师的所属机构eg_org_id 和该工程师是哪个服务商下的工程师org_id》】

查询的时候,获取直辖和外协的工程师,LEFT JOIN关联这两张表

默认查询  eg_org_id为空和非空的,(条件查询的时候,如果查直辖的话  即为eg_org_id 为空的 ,外协的话 即为eg_org_id为非空的)

查询条件中  如果 eg_org_id 为空是查询直辖 ,其值默认为1 。否则的话为2,查询的是外协。。。。关联code表,查出直辖和外协的字段值(工程师表里保存的工程师类型是数字)

也就是说查询的条件为   if(条件,条件符合的值,条件不符合的值)

 

ISNULL的使用:

1、如果为空返回0

select ifnull(null,0)

2、如果为空返回0,否则返回1

select if(isnull(col),0,1) 

IFNULL(expr1,expr2) 

如果expr1不是NULL,IFNULL()返回expr1,否则它返回expr2。I

IF(expr1,expr2,expr3) 
如果expr1是TRUE(expr1<>0且expr1<>NULL),那么IF()返回expr2,否则它返回expr3。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值