希望通过从所有记录中删除特殊字符"%"来更新 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];

用另一个字符串值替换了指定字符串值('%'(的所有出现。

查询将返回:

Date       Server   CPU   MEM   DRVC
------------------------------------
01/10/10   DRV01    90    80    40

如果您确实想 UPDATE 您的表格中提到的表格"想通过从所有记录"中删除特殊字符"%"来更新SQL Server表数据。然后

UPDATE [table01]
SET [CPU] = REPLACE([CPU], '%', ''),
    [MEM] = REPLACE([MEM], '%', ''),
    [DRVC] = REPLACE([DRVC], '%', '')
--WHERE <Type your conditions here>

最后,您需要为列选择正确的数据类型,因为CPUMEMDRVC是数字值,然后尝试使用适当的方法,您可以使用INTDECIMAL,CC_11,CC_11 ...根据您的要求。参见 Data types ALTER TABLE

只需使用替换函数...

DECLARE @x VARCHAR(100) = 'hello%world';
SELECT REPLACE(@x, '%', '')

编辑...添加代码以明确显示如何执行实际更新...

  -- create some test data...
    IF OBJECT_ID('tempdb..#TestData', 'U') IS NOT NULL 
    BEGIN DROP TABLE #TestData; END;
    CREATE TABLE #TestData (
        [Date] DATE NOT NULL,
        [Server] VARCHAR(50) NOT NULL,
        CPU VARCHAR(4) NOT NULL,
        MEM VARCHAR(4) NOT NULL,
        DRVC VARCHAR(4) NOT NULL 
        );
    INSERT #TestData (Date, Server, CPU, MEM, DRVC) VALUES
        (GETDATE(), 'DRV01', '90%', '80%', '40%');
    -- check the initial state of the test data.
    SELECT * FROM #TestData td;
    -- UPDATE the data to remove the % symbols.
    UPDATE td SET 
        td.CPU = REPLACE(td.CPU, '%', ''),
        td.MEM = REPLACE(td.MEM, '%', ''),
        td.DRVC = REPLACE(td.DRVC, '%', '')
    FROM
        #TestData td;
    -- check the post-update state of the test data.
    SELECT * FROM #TestData td;

replace((函数:

select replace('40%','%','')

最新更新