首页 > 数据库 >sqlserver 关于 case when is null 的查询

sqlserver 关于 case when is null 的查询

时间:2022-10-31 17:14:00浏览次数:47  
标签:case SuccessTranID -- sqlserver when BankPayUserFlow null where select

sqlserver 关于 case when is null 的查询

select * from ApInterSkuInfo 
where 
BeginValue=convert(varchar(100),convert(datetime,'2017-12-09 23:59:59.8',101),23)
----更新时间为null时按照新建时间排序,否则按照更新时间排序
order by (case UpdateDate when null then CreateDate else UpdateDate end) asc

=====================================================

--这样的情况会出现null值
select 
(case UpdateTime when null 
then InsertTime   end) 
from WxUsers 
where UserID='5537821'

--加上else就不会出现null值
select 
(case UpdateTime when null 
then InsertTime else InsertTime  end) 
from WxUsers 
where UserID='5537821'

 

=====================================================

SourceID=''
select 
ISNULL(SourceID,InsertTime) 
from WxUsers 
where UserID='5537821'
--查询结果也是'',因为ISNULL函数不会判断''值

 

=====================================================

关于 ISNULL 和 COALESCE

--SQL Server ISNULL函数和Coalesce函数替换空值的区别
SELECT COALESCE('',0)    --结果0
SELECT COALESCE('    ',0)  --结果0
SELECT COALESCE(null,0)   --结果0
SELECT COALESCE(123,0)       --结果123

SELECT ISNULL('',0)        --结果''
SELECT ISNULL('  ',0)      --结果''   
SELECT ISNULL(null,0)      --结果0
SELECT ISNULL(123,0)       --结果123
--由结果结果可以看出COALESCE函数对于空值处理和NULL值都起作用。

 

=====================================================

关于空值的查询

--没有'',也没有'  ',
select * from BankPayUserFlow order by CreateDate desc --249行(只有两种情况:有内容,NULL)
select * from BankPayUserFlow where SuccessTranID is null  --237行
select * from BankPayUserFlow where SuccessTranID is not  null --12行
select * from BankPayUserFlow where SuccessTranID =''  --0行
select * from BankPayUserFlow where SuccessTranID <>'' --12行 这行情况是特殊的,自动排除了NULL
select * from BankPayUserFlow where SuccessTranID is not null or SuccessTranID<>'' --12行

--有一行是'',
select * from BankPayUserFlow order by CreateDate desc --249行(只有三种情况:有内容,NULL,'')
select * from BankPayUserFlow where SuccessTranID is null  --236行
select * from BankPayUserFlow where SuccessTranID is not null --13行
select * from BankPayUserFlow where SuccessTranID =''  --1行
select * from BankPayUserFlow where SuccessTranID <>'' --12行 这行情况是特殊的,自动排除了NULL
select * from BankPayUserFlow where SuccessTranID is not null or SuccessTranID<>'' --13行

--有一行是'',有一行是'  ',
select * from BankPayUserFlow order by CreateDate desc --249行(只有四种情况:有内容,NULL,'','  ')
select * from BankPayUserFlow where SuccessTranID is null  --235行
select * from BankPayUserFlow where SuccessTranID is not null --14行
select * from BankPayUserFlow where SuccessTranID =''  --2行
select * from BankPayUserFlow where SuccessTranID <>'' --12行 这行情况是特殊的,自动排除了NULL
select * from BankPayUserFlow where SuccessTranID is not null or SuccessTranID<>'' --14行

 

搜索

复制

标签:case,SuccessTranID,--,sqlserver,when,BankPayUserFlow,null,where,select
From: https://www.cnblogs.com/jankie1122/p/11108842.html

相关文章

  • sqlserver convert datetime 和字符串之间的转换
     sqlserverconvertdatetime和字符串之间的转换--语句及查询结果:SelectCONVERT(varchar(100),GETDATE(),0)--0516200610:57AMSelectCONVERT(varchar(......
  • sqlServer执行计划分析
    SQLServerManagementStudio是一个交互式图形工具,使数据库管理员或开发人员可以编写查询、同时执行多个查询、查看结果、分析查询计划以及获得提高查询性能的帮助。如......
  • SQLServer备份信息查看
    查看数据文件和日志文件的备份记录SELECT[filegroup_name],[backed_up_page_count],[file_type],[file_size],[logical_name],[phy......
  • Leetcode第784题:字母大小写的全排列(Letters case permutation)
    解题思路使用回溯法。从左往右依次遍历字符,当遍历到字符串s的第i个字符c时:如果c为一个数字,继续检测下一个字符。如果c为一个字母,将其进行大小写转换,然后往后继续遍历;完......
  • shell编程之条件语句(条件测试、if语句、case语句)
    要使Shell脚本程序具备一定的“智能”,面临的第一个问题就是如何区分不同的情况以确定执行何种操作。Shell环境根据命令执行后的返回状态值($?)来判断是否执行成功,当返回值为0......
  • Flink性能测试case案例
    在我们做测试之前,调研了一些已有的大数据平台性能测试报告,比如,雅虎的Streaming-benchmarks,或者Intel的HiBench等等。除此之外,还有很多的论文也从不同的角度对分布式计算平......
  • SqlServer 查询数据重复
    SQLServer查询数据重复1、查询单列重复select*fromtestwherenamein(selectnamefromtestgroupbynamehavingcount(name)>1)2、查询多列重复SELECT......
  • Docker 安装SqlServer、Mysql、MariaDB
    Docker安装SqlServer说明1.拉取镜像dockerpullmcr.microsoft.com/mssql/server:2019-latest2.运行dockerrun--namemssqlserver2019-d--restartunless-st......
  • 单链表巧用dummy_head删除, 找目标位置的前一个node, Reverse考虑0/1的Corner Case,
    今天连续做了三道题,感觉越来越有感觉,第三题直接行云流水,10minAC目录203.移除链表元素单链表巧用dummy_head删除一开始犯的一个逻辑错误:val的节点可能连续出现......
  • sqlserver and or 的区别
    sqlserverandor的区别Or不加括号:查询结果36条数据,BID=21,BID=25匹配的Status的数据都会查询出来 selectBID,TradeID,[status],PaymentToBIdfromTradewhereBID......