回答

收藏

解码等效于Postgres

技术问答 技术问答 218 人阅读 | 0 人回复 | 2023-09-14

没有与Postgres等效Oracle的东西DECODE()'Function In。有没有人写过解码为函数?
1 y- B. j3 h4 `4 F8 g9 x% Z                + d) Z0 y! n6 s$ N: Y. }9 j
解决方案:( O! e8 w- N+ ^
                4 B% _/ @# O) Q
: o3 I4 s4 W2 f) `9 ?
$ s3 l' ?! u! F) k8 s
                有一个等效的。这称为CASE声明。0 a9 L' L, Y2 v6 b  a+ b9 Y" w
CASE有两种形式:
7 n, ?% b6 u* T0 ], @5 e' h+ K简单案例:
1 O8 o" A1 P1 s7 O: C; oCASE search-expression
5 ^9 Q5 @* T) b5 L* }    WHEN expression [, expression [ ... ]] THEN& i; N- @4 t7 h/ b* f$ g6 }/ _3 l
      statements2 t: s# |5 I7 U' _6 x) ^+ m1 ~
  [ WHEN expression [, expression [ ... ]] THEN" T  T9 |8 f! W4 m7 ^( n, W
      statements! G& y. H  U+ w8 ~: f5 z: H; R4 W
    ... ]$ k/ e6 f6 @7 d" ?# f: G
  [ ELSE% Y9 e% X# P2 _
      statements ]9 j) o# t. t: c4 v$ ]9 a& ^
END CASE;# \0 g, ?! K7 i& u: \! F3 Q
搜索的案例:
: U0 j3 w3 i; O. |, vCASE
) b' n' k, |0 ~6 }6 G    WHEN boolean-expression THEN8 D; ~8 `; ~2 q7 i; }; v
      statements
! a  ]# a/ E- Y% Q$ N  [ WHEN boolean-expression THEN2 z8 J. [3 i$ G  j" o. d
      statements
; U$ I5 {1 p5 y0 J- h, B2 o* X    ... ]8 w9 }& ^; q2 \! E- b! h
  [ ELSE; z, z  s& x" W) t& a
      statements ]
) y8 I& ^% p" M/ l. nEND CASE;
$ x4 e9 b; Q' B8 i/ ]CASE陈述更容易阅读;我decode()在Oracle中更喜欢这些。
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则