我在sql server中有一个列,其中有整数值,现在我想要替换一个范围,例如值&gt; 55字符串'正常值'和值<55替换'异常值',我尝试了replace()函数,但它没有工作。请帮忙吗?
答案 0 :(得分:2)
下面的查询对表没有任何作用,但它不显示值,而是显示等效的字符串,
SELECT yourValue,
CASE WHEN yourValue > 55 THEN 'Normal' ELSE 'Abnormal' END
FROM tableName
56及以上将是Normal
55及以下将是Abnormal
答案 1 :(得分: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