-1

我在sql server中有一个列,其中有整数值,现在我想用字符串“正常值”替换一个范围,例如值> 55,值<55替换为“异常值”,我尝试了replace()函数但它没有用。请问有什么帮助吗??

4

2 回答 2

2

下面的查询不会对表执行任何操作,但不会显示值,而是显示等效的字符串,

SELECT  yourValue,
        CASE WHEN yourValue > 55 THEN 'Normal' ELSE 'Abnormal' END
FROM    tableName

56 岁及以上为Normal
55 岁及以下Abnormal

于 2013-09-22T08:30:16.210 回答
0

如果该列允许 NULL,那么您可以尝试:

SELECT t.ColA, CASE WHEN t.ColA >= 55 THEN 'Normal value' WHEN t.ColA < 55 THEN 'abnormal value' END
FROM MySchema.MyTable AS t

例子:

DECLARE @MyTable TABLE
(
    ID INT IDENTITY(1,1) PRIMARY KEY,
    ColA INT NULL
);

INSERT INTO @MyTable (ColA) VALUES(11);
INSERT INTO @MyTable (ColA) VALUES(111);
INSERT INTO @MyTable (ColA) VALUES(NULL);

SELECT t.ColA, 
CASE 
  WHEN t.ColA >= 55 THEN 'Normal value' 
  WHEN t.ColA < 55 THEN 'abnormal value' 
  -- WHEN t.ColA IS NULL THEN NULL
END AS CaseWhen
FROM @MyTable AS t

结果:

ColA        CaseWhen
----------- --------------
11          abnormal value
111         Normal value
NULL        NULL
于 2013-09-22T08:40:48.883 回答