条件选择语句
最近更新时间: 2024-10-17 17:10:00
以下几个示例,说明条件选择语句的类型以及使用方法。
IF...THEN...END IF
postgres=# CREATE OR REPLACE FUNCTION f26() RETURNS VOID AS
postgres-# $$
postgres$# BEGIN
postgres$# IF random()>0.5 THEN
postgres$# RAISE NOTICE '随机数大于0.5';
postgres$# END IF;
postgres$# END;
postgres$# $$
postgres-# LANGUAGE plpgsql;
CREATE FUNCTION
postgres=# select f26();
NOTICE: 随机数大于0.5
f26
-----
(1 row)
IF...THEN...ELSE...END IF
postgres=# CREATE OR REPLACE FUNCTION f26() RETURNS VOID AS
postgres-# $$
postgres$# BEGIN
postgres$# IF random()>0.99 THEN
postgres$# RAISE NOTICE '随机数大于0.99';
postgres$# ELSE
postgres$# RAISE NOTICE '随机数小于或等于0.99';
postgres$# END IF;
postgres$# END;
postgres$# $$
postgres-# LANGUAGE plpgsql;
CREATE FUNCTION
postgres=# select f26();
NOTICE: 随机数小于或等于0.99
f26
-----
(1 row)
IF...THEN...ELSIF...THEN...ELSE...END IF
postgres=# CREATE OR REPLACE FUNCTION f26() RETURNS VOID AS
postgres-# $$
postgres$# DECLARE
postgres$# v_float8 float8 := random();
postgres$# BEGIN
postgres$# IF v_float8>0.99 THEN
postgres$# RAISE NOTICE '随机数大于0.99';
postgres$# ELSIF v_float8>0.5 THEN
postgres$# RAISE NOTICE '随机数大于0.50';
postgres$# ELSIF v_float8>0.25 THEN
postgres$# RAISE NOTICE '随机数大于0.25';
postgres$# ELSE
postgres$# RAISE NOTICE '随机数小于或等于0.25';
postgres$# END IF;
postgres$# END;
postgres$# $$
postgres-# LANGUAGE plpgsql;
CREATE FUNCTION
postgres=# SELECT f26();
NOTICE: 随机数大于0.50
f26
-----
(1 row)
CASE语句
postgres=# CREATE OR REPLACE FUNCTION f26() RETURNS VOID AS
postgres-# $$
postgres$# DECLARE
postgres$# v_float8 float8 := random();
postgres$# BEGIN
postgres$# CASE
postgres$# WHEN v_float8>0.99 THEN
postgres$# RAISE NOTICE '随机数大于0.99';
postgres$# WHEN v_float8>0.5 THEN
postgres$# RAISE NOTICE '随机数大于0.50';
postgres$# WHEN v_float8>0.25 THEN
postgres$# RAISE NOTICE '随机数大于0.25';
postgres$# ELSE
postgres$# RAISE NOTICE '随机数小于或等于0.25';
postgres$# END CASE;
postgres$# END;
postgres$# $$
postgres-# LANGUAGE plpgsql;
CREATE FUNCTION
postgres=# SELECT f26();
NOTICE: 随机数大于0.50
f26
-----
(1 row)