CASE WHEN ELSE END的一个用法

--case when else的一个用法:统计每行数据不为空的字段的个数:
--创建测试数据:
go
if OBJECT_ID('tbl')is not null
drop table tbl
go
create table tbl(
col1 varchar(5),
col2 varchar(5),
col3 varchar(5),
col4 varchar(5),
col5 varchar(5),
col6 varchar(5),
col7 varchar(5),
col8 varchar(5)
)

insert tbl
select '1',null,'2',null,'3','4','5','6' union all
select '1','2','3',null,null,null,null,'4' union all
select '1','2',null,'3','4','5','6','7' union all
select '1',null,null,'2','3',null,'4',null
--静态实现方法
--"+"想加统计各个“case when else”的结果来达到目的:
select *,
case when col1 is not null then 1 else 0 end+
case when col2 is not null then 1 else 0 end+
case when col3 is not null then 1 else 0 end+
case when col4 is not null then 1 else 0 end+
case when col5 is not null then 1 else 0 end+
case when col6 is not null then 1 else 0 end+
case when col7 is not null then 1 else 0 end+
case when col8 is  null then 1 else 0 end as notnull
from tbl

--动态实现方法


declare @str varchar(max)
set @str=''
select @str= @str+'+ case when ' + name +' is not null then 1 else 0 end'+char(13)+char(10)

--char(13)+char(10)实现换行
from syscolumns where id = OBJECT_ID('tbl')
--print @str
set @str='select *,'+@str+' as notnull from tbl'
--print @str
exec(@str)


/*
j结果:
col1    col2    col3    col4    col5    col6    col7    col8    notnull
1    NULL    2    NULL    3    4    5    6    5
1    2    3    NULL    NULL    NULL    NULL    4    3
1    2    NULL    3    4    5    6    7    6
1    NULL    NULL    2    3    NULL    4    NULL    5
*/
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用:在SQL中,SELECT语句可以使用CASE WHEN ELSE END结构来进行条件判断和返回不同的结果。这个结构有两种形式:简单CASE函数和CASE搜索函数。对于简单CASE函数,可以按照不同的条件返回不同的结果;而对于CASE搜索函数,可以在条件后面使用WHEN子句进行更复杂的条件判断。 引用:在SELECT语句中,可以使用SELECT CASE WHEN ELSE END结构来返回选择性的字段值。在这个结构中,可以使用CASE WHEN来根据不同的条件返回不同的结果值,而ELSE可以指定当没有满足条件的情况下返回的默认值。同时,可以使用AS子句为返回的字段结果重新命名。 所以,select case when else end是一种在SQL中用来进行条件判断和返回选择性结果的语法结构。一般情况下,它可以根据不同的条件返回不同的值,同时还可以使用ELSE指定默认值。<span class="em">1</span><span class="em">2</span> #### 引用[.reference_title] - *1* [oracle case when 语句的用法详解](https://download.csdn.net/download/weixin_38645865/13699464)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [Case When Else End用法详解](https://blog.csdn.net/weixin_43473360/article/details/83786263)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值