我有一个复杂的脚本,可以处理200多个案例陈述,聚合或字段比较。但是当返回的数字小于9时,我需要用#或*替换它们。有没有办法可以在结果中执行此操作,还是需要将其包含在每个处理部分中?
答案 0 :(得分:0)
您可以在REPLACE
函数下放置整个case语句(或任何提供结果的语句)
编辑:如果您的输出是数字(或浮点数或整数),您可以将整个语句放在一个新的情况下,如下所示
DECLARE @MYTESTTABLE TABLE(ID INT, PRODUCT NVARCHAR(20), PRICE FLOAT)
INSERT INTO @MYTESTTABLE VALUES
(1, 'Product 1', 5.25),
(2, 'Product 2', 15.50),
(3, 'Product 3', 29.90)
SELECT ID,
PRODUCT,
CASE WHEN PRICE < 9 THEN '#' ELSE CONVERT(NVARCHAR, PRICE) END AS PRICE
FROM @MYTESTTABLE
输出:
ID PRODUCT PRICE
----------- -------------------- ------------------------------
1 Product 1 #
2 Product 2 15.5
3 Product 3 29.9
(3 rows affected)