您好我正在使用SAP HANA中的下表:
Outcome Value Rating
Yes 0 null
Yes 20 null
No -16 null
我需要有条件地填充Rating列,以便:if:
Value > 15; Rating = 'High"
-15 <= Value <= 15; Rating = 'Medium"
Value < -15; Rating = 'Low"
无论如何我可以使用INSERT或UPDATE语句执行此操作吗?
答案 0 :(得分:0)
如果您使用MSSQL
,则可以很好地使用CASE语句:
RATING = CASE
WHEN Value > 15 THEN 'High'
WHEN Value BETWEEN -15 AND 15 THEN 'Medium'
ELSE 'Low'
END
这假设Value
是int而不是其他类型。
INSERT
声明的示例:
DECLARE @Value int = 10,
@Rating varchar(10)
SELECT @Rating = CASE
WHEN @Value > 15 THEN 'High'
WHEN @Value BETWEEN -15 AND 15 THEN 'Medium'
ELSE 'Low'
END
INSERT INTO Table
(Outcome, Value, Rating)
SELECT
Outcome = 'Yes',
Value = @Value,
Rating = @Rating
和UPDATE
:
UPDATE Table
SET Rating = CASE
WHEN Value > 15 THEN 'High'
WHEN Value BETWEEN -15 AND 15 THEN 'Medium'
ELSE 'Low'
END
WHERE UniqueID = 1
答案 1 :(得分:0)
您可以使用mysql例程来处理条件代码,这是您正在寻找的例程的示例。
CREATE FUNCTION `myfunc` (`value` INT) RETURNS VARCHAR( 10 )
IF value >=15 THEN RETURN 'High';
ELSEIF value >= -15 AND value <15 THEN RETURN 'Medium';
ELSEIF value < -15 THEN RETURN 'Low';
END IF ;
你可以在你的mysql代码中使用这个例程,比如
INSERT INTO `table_name` VALUES('Yes',5,myfunc(5))
答案 2 :(得分:0)
update table_name set Rating = case when Value<-15 then 'low' when
(Value>-15 and Value<15) then 'medium' when Value>15 then 'high' end
使用带有更新语句的案例应该可以解决您的问题