sql - 将 SQL 表中的一系列值替换为单个值
问题描述
我正在尝试用字符串替换一系列值。我知道如何使用替换功能来做到这一点,但据我所知,这需要一次完成一个。
有没有办法选择一个值范围,例如(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
,并将 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
推荐阅读
- format - 在 Octave 中使用 num2str 的奇怪行为
- php - 分页错误 - laravel Method Illuminate\Database\Eloquent\Collection::paginate 不存在
- c++ - #include 错误
在铿锵声 6 和 10 - json - 使用 divi 或 elementor 迁移 Wordpress
- operating-system - 专用于一个程序的计算机
- python - 计算 DataFrame 列中的列表长度
- python - Python matplotlib 只返回对象而不是绘图?
- c++ - 延长临时对象的生命周期而不复制它
- machine-learning - 在我的模型过拟合之前,最好的时期数是多少?
- reactjs - react-hook-form - 无法将表单数据传递给父组件