oracleでdecodeをsignと組み合わせて使用
19006 ワード
sqlにおけるcase whenのもう一つの書き方decode sign
だからsignとdecodeが使う確率は大きいです
1、sign :
sign(n);
sign :
n , 0 1, 0 -1, 0 0(n ,(n-200))
:
:
a=10;
b=50;
sign(a-b) ==-1
sign(b-a) == 1
sign(a-10)==0
2 decode
:
decode( , 1, 1, 2, 2,... n, n, )
:
IF = 1 THEN
RETURN( 1)
ELSIF = 2 THEN
RETURN( 2)
......
ELSIF = n THEN
RETURN( n)
ELSE
RETURN( )
END IF
decode( , 1, 2, 3)
, 1 , 2, 3
1, 2, 3 , sql
:
user sex( ) , 1 0, , , decode
select decode(u.sex ,1, , ) from user u; ,
:
decode(u.sex ,1, , ); decode ( ) u.sex==1? : ( if else ), decode , > =、<=、 , sign(n) , sign() -1,0,1, , :
:
a = 10,
b=50.
select decode(sign(A-B),1,'a>b',0,' ',-1,'afrom (select 30 a ,50 b from dual);
select decode (sign((select 1 from dual)-1),1,1,0,0,-1,1) from dual
select decode(sign(A-B),1,'a>b',0,' ','afrom (select 30 a ,50 b from dual);
select decode (sign((select 1 from dual)-1),1,1,0,0,-1) from dual
java:
if((a-b)>=1)
{
return 'a>b';
}
else if((a-b)==0)
{
return ' '
}
else{return 'a}
だからsignとdecodeが使う確率は大きいです