mysql - 嵌套情况下的 NULL 值问题

标签 mysql sql sql-server tsql

长话短说,如果存储的值为空,我需要返回一个 varchar 值,但要么给我带来一个 NULL 值,要么返回 varchar 值,这里是代码。

在表中我有一些字段为空,一些字段为数据

CASE WHEN DS.DBIRTH+DS.MBIRTH+DS.YBIRTH = 
'' THEN CONVERT(VARCHAR(10),PT.CLIENTDBIRTHDATE,111)
ELSE 'INPUT DATE OF BIRTH'
CASE WHEN PT.CLIENTBIRTHDATE IS NULL THEN ''
 ELSE '1800-01-01'
 END 
 END AS BFIELD

这给我带来了这样的东西

         NULL
        1917/05/02
         NULL
        1923/02/02
        1967/01/05
        NULL

但我需要这样的东西

        01/01/1800
        1917/05/02
        01/01/1800
        1923/02/02
        1967/01/05
        01/01/1800

抱歉,这个问题太菜鸟了

最佳答案

您当前的 case 陈述看起来不正确。我想你想要做的是将结果包装在 coalesce 中:

COALESCE(CASE 
             WHEN DS.DBIRTH+DS.MBIRTH+DS.YBIRTH = '' 
             THEN CONVERT(VARCHAR(10),PT.CLIENTDBIRTHDATE,111)
             ELSE 'INPUT DATE OF BIRTH'
         END, '01/01/1800') AS BFIELD

关于mysql - 嵌套情况下的 NULL 值问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37979470/

相关文章:

mysql - 相当于 MySQL 中的 SQL 加载器

mysql - 将 PGSQL "Create Function"转换为 MySQL

android - SQLite 数据库架构 : Empty Tables

php while 循环内的 while 循环

sql - 我应该如何执行 SQL ETL 脚本和 SPROC 的自动化测试?

sql - SQL Server 中 OVER 和 PARTITION BY 生成的值的状态

mysql - 用空格分隔的列名的sql更新查询

MySQL从多个表中选择1个结果,并从1个具有多个值的表中选择最大值

mysql - 查询每行中的总列

java - 为什么我的 RESTful API 在执行 SQL 查询时如此慢?但当我刚刚运行查询时速度很快