【发布时间】:2015-06-01 07:02:36
【问题描述】:
使用 pubs db,我使用 UNION ALL 创建了以下内容,但尝试使用 CASE stmt 做同样的事情。
SELECT
t.title_id AS 'Title ID',
t.ytd_sales 'YTD Sales',
t.price AS 'Original Price',
'New Price' = CASE t.ytd_sales
WHEN (t.ytd_sales < 2500.00) THEN CONVERT(DECIMAL(9,2),ROUND (t.price*1.15,2))
WHEN (t.ytd_sales BETWEEN 2500.00 AND 10000.00) THEN CONVERT(DECIMAL(9,2),ROUND(t.price*1.10,2))
WHEN (t.ytd_sales > 10000.00) THEN CONVERT(DECIMAL(9,2),ROUND(t.price*1.05,2))
ELSE CONVERT(DECIMAL(9,2),ROUND(t.price*1.00,2))
END
FROM titles t
;
它不喜欢比较/特殊运算符。这甚至可以作为 CASE stmt 吗? 谢谢
【问题讨论】:
-
您正在混合 CASE 语句的 2 种形式。
标签: sql-server case