oracle怎么寫IF語句
如果是 SQL 語句里面使用。
使用 DECODE 或者 CASE WHEN
DECODE 的用法就是
DECODE(abc, 50, 'A', 'B')
CASE WHEN 的用法就是
CASE WHEN abc=50 THEN 'A' ELSE 'B' END
如果是在存儲過程里面的話,就是簡單的 IF/ELSE 了
SQL 語句的話,就是
SELECT
abc, DECODE(abc, 50, 'A', 'B')
FROM
表
求簡單db2動態語句
已下面這個table為例:create table * (col_name int);那么你的存儲過程應該這樣寫:create procedure proc_test(in tab_schema varchar(128),in tab_name varchar(128))begindeclare sql_stmt varchar(1024);if exists(select * from * where tabschema=tab_schema and tabname=tab_name and type='T') thenset sql_stmt = 'drop table '||tab_schema||'.'||tab_name;prepare sx from sql_stmt;execute sx;commit;end if;set sql_stmt = 'create table ||tab_schema||'.'||tab_name||'(col_name int)';prepare sx from sql_stmt;execute sx;commit;end;。
存儲過程的if,else怎么寫
不同的數據庫中,存儲過程中if else 語句寫法有一些差別。
如果是SQLServer數據庫,存儲過程的if, else語句可以這樣寫:
if a>b
Begin
print 'a'
End
Else if a<b
Begin
print 'b'
End
Else
Begin
print '代碼'
End Oracle 采用下面這種寫法:
IF testvalue > 100 THEN
dbms_*_line( '100+' );
ELSIF testvalue = 100 THEN
dbms_*_line( '100' );
ELSE
dbms_*_line( '100-' );
END IF;
DB2, MYSQL 是下面這種寫法: ( 與 Oracle 區別在于那個 ELSIF )
IF p_val > 100 THEN
INSERT INTO output_debug VALUES( '100+' );
ELSEIF p_val = 100 THEN
INSERT INTO output_debug VALUES( '100' );
ELSE
INSERT INTO output_debug VALUES( '100-' );
END IF;