您好,我正在使用SAP HANA中类似于下表的表格:
Outcome Value Rating
Yes 0 null
Yes 20 null
No -16 null我需要有条件地填充Rating列,以便:
Value > 15; Rating = 'High"
-15 <= Value <= 15; Rating = 'Medium"
Value < -15; Rating = 'Low"有没有什么方法我可以使用INSERT或UPDATE语句来做这件事?
发布于 2015-12-05 04:31:22
如果您使用的是MSSQL,这是CASE语句的一个很好的用途:
RATING = CASE
WHEN Value > 15 THEN 'High'
WHEN Value BETWEEN -15 AND 15 THEN 'Medium'
ELSE 'Low'
END这假设Value是一个整型类型,而不是其他类型。
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发布于 2015-12-05 04:36:27
您可以使用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))发布于 2016-06-18 06:04:09
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使用case with update语句应该可以解决您的问题
https://stackoverflow.com/questions/34096801
复制相似问题