现在有一张表有以下几个字段 A B C D E F G H I J K现在要编写一个存储过程来 update J字段
其条件如下,
if K=0 then J=G*I
else
if max(G,H)*I-F<0 then J=f
else J=max(G,H)*I 请问一下这样的一个存储过程怎样写呢??
其条件如下,
if K=0 then J=G*I
else
if max(G,H)*I-F<0 then J=f
else J=max(G,H)*I 请问一下这样的一个存储过程怎样写呢??
set J= case
when K=0 then G*I
when (case when G>H then G else H end) * I-F<0 then F
else (case when G>H then G else H end) * I
end
AS
IF K>0
UPDATE TB SET J=G*I WHERE K>0
ELSE
BEGIN IF G>H AND G*I<F
BEGIN
UPDATE TB SET J=F WHERE G>H AND G*I<F
END
IF G<H AND H*I<F
BEGIN
UPDATE TB SET J=F WHERE G<H AND H*I<F
END
ELSE
BEGIN
DECLARE @TMP INT
SET @TMP=CASE WHEN G>H THEN G ELSE H END
UPDATE TB SET J=@TMP *I WHERE @TMP *I>F
END
END