You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SQL Server中如何处理含字符的数值列以执行数据质量校验?

解决SQL Server带单位列的数值比较问题

直接通过查询处理带单位的列,无需修改表结构,具体方案如下:

核心思路

先去除Building Height列的单位'm',转换为数值类型后,再应用数据质量规则筛选不符合的行。

具体查询语句

SELECT 
    [Building Height], 
    楼层数列名 -- 替换为实际的楼层数列名称
FROM 
    你的表名 -- 替换为实际的表名称
WHERE 
    -- 转换建筑高度为数值,同时处理可能的格式异常
    TRY_CAST(REPLACE([Building Height], 'm', '') AS DECIMAL(10,1)) < 11
    AND 楼层数列名 >= 5;

细节说明

  • 使用REPLACE([Building Height], 'm', '')直接移除字符串末尾的'm',适用于所有值都是'm'结尾的情况。
  • TRY_CAST相比CAST更安全:如果列中存在非标准格式的值(比如不带'm'、非数字内容),TRY_CAST会返回NULL,不会导致整个查询失败。如果需要过滤这些异常值,可以在WHERE条件中添加TRY_CAST(...) IS NOT NULL。
  • 替换语句中的你的表名和楼层数列名为实际的表和列名称即可执行。

内容的提问来源于stack exchange,提问作者omi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 18:22:08