繁体   English   中英

将 SQL 表中的一系列值替换为单个值

[英]Replace a range of values in an SQL table to a single value

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

有没有办法 select 一系列值,例如(1-200),并将它们替换为单个字符串值,例如“BLANK”?

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

基本代码理念

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

谢谢!

这是你想要的吗?

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM