sql - 想要通过从所有记录中删除特殊字符“%”来更新 SQL Server 表数据
问题描述
我需要帮助来更新表中的记录。目前,我有一个%
想要从所有记录中删除的值。我在这个表中有超过 4000 条记录。
Date Server CPU MEM DRVC
------------------------------------
01/10/10 DRV01 90% 80% 40%
我希望数据值保持不变,但要删除“%”符号。
Date Server CPU MEM DRVC
------------------------------------
01/10/10 DRV01 90 80 40
就我而言,我需要更新三列记录
CPU
MEM
DRVC
declare @x = CPU
declare @y = MEM
declare @z = DRVC
SELECT REPLACE(@x, '%', '') from table01;
SELECT REPLACE(@y, '%', '') from table01;
SELECT REPLACE(@z, '%', '') from table01;
解决方案
您可以使用REPLACE()
函数将其删除为
SELECT [Date],
[Server],
REPLACE([CPU], '%', '') [CPU],
REPLACE([MEM], '%', '') [MEM],
REPLACE([DRVC], '%', '') [DRVC]
FROM [table01];
该REPLACE()
函数将所有出现的指定字符串值('%'
在您的情况下)替换为另一个字符串值。
查询将返回:
Date Server CPU MEM DRVC
------------------------------------
01/10/10 DRV01 90 80 40
如果你真的想要你的表,就像你在标题“想通过从所有记录中删除特殊字符“%”来更新 SQL Server 表数据”UPDATE
中提到的那样,那么
UPDATE [table01]
SET [CPU] = REPLACE([CPU], '%', ''),
[MEM] = REPLACE([MEM], '%', ''),
[DRVC] = REPLACE([DRVC], '%', '')
--WHERE <Type your conditions here>
最后,您需要为列选择正确的数据类型,因为CPU
和MEM
是DRVC
数值,然后尝试使用正确的数字数据类型,您可以根据需要使用INT
, BIGINT
, DECIMAL
...。见Data types
和ALTER TABLE
。
推荐阅读
- angular - Why post works and get is throwing error? Angular service
- angular - POST 在 nativescript/angular 中作为 GET 发送
- laravel - 在状态内创建工厂并在 Laravel 中获取自身的 id
- angular - Angular Datatables - 重新加载数据
- lockscreen - SDDM 忽略自定义配置 (/etc/sddm.conf)
- postgresql - 在 macOS 上编译安装 postgreSQL V11 失败
- java - @JsonIgnoreProperties 不忽略未知属性
- matlab - 在matlab中找到矩阵中最大值两侧的局部最小值
- java - 在运行时在java中打开文件
- angular - 找不到不同的支撑物体 angular 7