sql - case 语句返回 0 而不是空字符串
问题描述
我有以下案例陈述;
case when (
CASE
WHEN datediff(year,view_3.[PERSON BIRTH DATE], @ReportPeriodStartDate) >= 19 AND view_3.[NI NUMBER] IS NOT NULL
THEN '' ELSE view_3.[NI NUMBER] END ) = 0 then '' else view_3.[NI NUMBER] END AS [NI NUMBER],
我希望它返回
Birthddate NI Number
14/04/2012 9000
06/05/2020 2000
01/01/2001
22/12/1998
但我得到的输出是;
Birthddate NI Number
14/04/2012 9000
06/05/2020 2000
01/01/2001 0
22/12/1998 0
我不想要零,我想要空字符串。
解决方案
你想返回一个字符串,所以你需要转换else
:
else cast(view_3.[NI NUMBER] as varchar(255))
推荐阅读
- python - 将 CSV 读入 Pandas 时推断日期的最有效方法是什么?
- java - 递归方法中的泛型
- python - 只显示字符串的大写字母
- ruby-on-rails - 太多级别的符号链接@rb_sysopen - tmp/pids/sidekiq.pid
- java - 计算器应用程序问题 - 开头为 0 和数字中的点
- jemalloc - jemalloc 中的 lg_prof_interval 是否意味着在两个时间点之间转储堆?
- javascript - 单击链接时,Tampermonkey 更改为 href 会恢复
- c - 删除链表中的节点
- c# - ASP.net Kestrel 有些查询很慢
- python - Python Selenium - 调整 pause_time 以在无限页面中向下滚动