----------------新换的工作,用的是sql server,函数和其他的操作系统大相径庭,总结一下,方便查看----------------------遇到值得总结的函数会直接更新在此篇博客,很多都是百度后亲自操作总结出来的,如有雷同,不是巧合----
一、ISNULL函数
ISNULL(a,b)
1、a和b的数据类型要一致。a是字段名,b是设定默认的值。
2、如果a的值不为null,结果返回a。
3、如果a为null,结果返回b。
例如: 下面是我工作中遇到的语句,语句要求:行业取前五,本年上年的入库数的差(这里的ISNULL做了减法)
SELECT TOP(5) NEWNSRMC,行业,'1' AS CYType,ISNULL(BNTRAAMT,0)-ISNULL(SNTRAAMT,0) AS TRAAMT
FROM
(
SELECT NEWNSRMC, (SELECT HY_Name FROM 行业取前十 WHERE ID =@CS) AS 行业 ,SUM( TRAAMT_DS ) AS BNTRAAMT
FROM F_SW_Detail_2019
WHERE RKRQ_Y=YEAR(GETDATE()) AND RKRQ_M=MONTH(GETDATE()) AND NEWNSRMC<>'其他未明细纳税人' AND LEFT(HY_Code,3)=(SELECT HY_Code FROM 行业取前十 WHERE ID =@CS)
GROUP BY NEWNSRMC
) AS A
LEFT JOIN
(
SELECT NEWNSRMC, (SELECT HY_Name FROM 行业取前十 WHERE ID =@CS) AS 行业 ,SUM( TRAAMT_DS ) AS SNTRAAMT
FROM F_SW_Detail_2018
WHERE RKRQ_Y=YEAR(GETDATE())-1 AND RKRQ_M=MONTH(GETDATE()) AND NEWNSRMC<>'其他未明细纳税人' AND LEFT(HY_Code,3)=(SELECT HY_Code FROM 行业取前十 WHERE ID =@CS)
GROUP BY NEWNSRMC
) AS B ON A.NEWNSRMC=B.NEWNSRMC
ORDER BY ISNULL(BNTRAAMT,0)-ISNULL(SNTRAAMT,0)
***注意***
在sql server中字段为空的话,不要写成a=null或者a='',应写成a is null,下面是更加直观的例子。
1、当写成a=null时
2、当写成 a is null时