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表,查出直辖和外协的字段值(工程师表里保存的工程师类型是数字)

sql语句之if & IFNULL_第1张图片

也就是说查询的条件为   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。

你可能感兴趣的:(sql)