首页 > 解决方案 > 想要通过从所有记录中删除特殊字符“%”来更新 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;

标签: sqlsql-servertsql

解决方案


您可以使用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>

最后,您需要为列选择正确的数据类型,因为CPUMEMDRVC数值,然后尝试使用正确的数字数据类型,您可以根据需要使用INT, BIGINT, DECIMAL...。见Data typesALTER TABLE


推荐阅读