首页 > 解决方案 > 将 SQL 表中的一系列值替换为单个值

问题描述

我正在尝试用字符串替换一系列值。我知道如何使用替换功能来做到这一点,但据我所知,这需要一次完成一个。

有没有办法选择一个值范围,例如(1-200),并用一个单一的字符串值替换它们,比如“BLANK”?

我尝试过 WHEN、THEN 和 SET,但在尝试这些时在 WHEN 或 SET 附近出现语法错误。

基本代码理念

Select DATA
WHEN DATA >= 1 THEN 'BLANK'
WHEN DATA <200 THEN 'BLANK
END
FROM DATABANK

谢谢!

标签: sqlreplace

解决方案


这是你想要的吗?

select data,
    case when data not between 1 and 200 then data end as new_data
from databank

这样做是取 的整数值data,并将 1-200 范围内的任何值替换为null值,同时保持其他值不变。结果进入列new_data

这里的假设是这data是一个数字 - 所以替代值必须与该数据类型一致(字符串'BLANK'不是):I go for null,它与任何数据类型一致,并且是case表达式在没有分支时返回的默认值火柴。

如果你想要别的东西,比如说0,你会这样做:

select data,
    case when data between 1 and 200 then 0 else data end as new_data
from databank

推荐阅读