我希望能够为具有不同值的两个不同字段设置值,这些字段满足相同的case语句。
例如
DECLARE @RATE1 AS FLOAT
DECLARE @RATE2 AS FLOAT
UPDATE TABLE1
SET CATEGORY = CASE WHEN DATE >= '16 JAN 2014' THEN 'NEW'
但与此同时我也希望SET @ RATE1 = 0.001
然后
WHEN DATE < '16 JAN 2014' THEN 'OLD'
END
但与此同时我也希望SET @ RATE2 = 0.002
这有可能吗?
答案 0 :(得分:0)
UPDATE TABLE1
SET CATEGORY = CASE WHEN DATE >= '16 JAN 2014' THEN 'NEW'
WHEN DATE < '16 JAN 2014' THEN 'OLD'
END
要为变量设置值,您需要一个单独的语句,如
IF EXISTS (SELECT 1 FROM TABLE1 WHERE DATE >= '16 JAN 2014')
BEGIN
SET @RATE1 = 0.001;
END
ELSE
BEGIN
SET @RATE2 = 0.002;
END
假设您的DATE是VARCHAR字段,并且它以DD MMM YYY格式存储日期。虽然存储日期数据,但不是一个很好的数据类型选择。