SQL 时间字段为空转换为空字符串

先看下数据库结构:

转换后的效果:

代码:

SELECT *,
CASE WHEN AddTime IS NOT NULL
THEN CONVERT(varchar(20),AddTime,20)
ELSE '' END ConvertTime
FROM [BingFaTest].[dbo].[Product]

 

### 如何在 SQL 中检查字符串是否为或 NULL #### 使用 `IS NULL` 和 `IS NOT NULL` 为了验证变量或字段是否为 `NULL`,可以采用如下方式: 对于变量而言,可以通过条件语句来实现这一功能。例如,在 T-SQL (SQL Server) 下面的语法用于检测名为 @VariableName 的变量是否为 `NULL`[^1]。 ```sql IF (@VariableName IS NULL) BEGIN -- 执行某些操作 END; ``` 当涉及到表中的列时,则可以在查询中直接应用相同的逻辑。比如要找出某列所有等于 `NULL` 的记录,可编写这样的 SELECT 语句: ```sql SELECT * FROM TableName WHERE ColumnName IS NULL; ``` #### 处理字符串 (`''`) 有时除了关心 `NULL` 值外,还需要考虑那些实际上存在但是长度为零即所谓的 "串" 或者仅包含白字符的情况。针对这种情况,应该扩展之前的查询以同时处理这两种情形。下面的例子展示了如何做到这一点: ```sql SELECT * FROM TableName WHERE COALESCE(NULLIF(LTRIM(RTRIM(ColumnName)), ''), 'Default') = 'Default'; ``` 这里使用了多个函数组合起来达到目的: - `LTRIM()` 和 `RTRIM()` 分别去除左侧和右侧多余的格; - `NULLIF(x, y)` 如果两个参数相同则返回 `NULL` 否则返回第一个参数 x; - `COALESCE(a, b)` 返回列表里第一个非 `NULL` 的表达式的值;如果都为 `NULL` 就会得到最右边那个默认值。 因此上述代码片段能够有效地识别并筛选出真正意义上的 “字段——无论是严格意义下的 `NULL` 还是形式上的字符串[^4]。 #### 替换字符串为 `NULL` 另外一种常见需求是在读取数据之前就将所有的字符串转换成 `NULL` 来简化后续的数据分析工作。这可以通过修改表结构定义或者利用查询过程中的计算完成。前者涉及到了 DDL 操作,而后者则是通过 SQL 表达式动态变换。具体来说就是像这样写一条简单的 SELECT 查询[^3]: ```sql SELECT IF(ColumnName='', NULL, ColumnName) AS NewColumnName FROM TableName; ``` 此命令会在结果集中创建一个新的虚拟列 `NewColumnName` ,它把原始列里的每一个字符串替换成 `NULL` 。当然也可以反过来做同样的事情—即将 `NULL` 转化为白串或其他任何指定的内容。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值