PGSQL 写存储函数 根据传来的数字 如果是0就返回未归档,其余结果就返回已归档
时间: 2024-02-27 16:54:12 浏览: 43
可以使用以下的 PL/pgSQL 存储函数来实现:
```
CREATE OR REPLACE FUNCTION archive_status(num INT) RETURNS TEXT AS $$
BEGIN
IF num = 0 THEN
RETURN '未归档';
ELSE
RETURN '已归档';
END IF;
END;
$$ LANGUAGE plpgsql;
```
使用时,可以调用该函数并传入数字参数:
```
SELECT archive_status(0); -- 返回 '未归档'
SELECT archive_status(1); -- 返回 '已归档'
SELECT archive_status(2); -- 返回 '已归档'
```
注意,函数名、参数类型和返回类型可以自行根据实际情况进行修改。
相关问题
PGSQL 写存储函数 判断传来的字符串 如果包含1 就返回未完成,如果不包含1就返回已完成
可以使用PL/pgSQL语言编写一个存储函数来实现你的需求,下面是一个示例函数:
```
CREATE OR REPLACE FUNCTION check_status(str text)
RETURNS text AS $$
BEGIN
IF str LIKE '%1%' THEN
RETURN '未完成';
ELSE
RETURN '已完成';
END IF;
END;
$$ LANGUAGE plpgsql;
```
这个函数接收一个text类型的参数str,然后使用IF语句判断str是否包含1,如果包含就返回“未完成”,否则返回“已完成”。使用LIKE操作符可以实现模糊匹配,%表示匹配任意字符,所以'%1%'表示匹配包含数字1的任意字符串。
pgsql对数据库函数返回结果打印
在PostgreSQL中,如果想对数据库函数的返回结果进行打印,首先你需要编写一个PL/pgSQL过程或者函数,然后使用`RAISE NOTICE`或`RETURN`语句来输出信息。这两个语句用于在运行时生成通知,它们的工作原理不同:
1. `RAISE NOTICE`: 它会在服务器日志中生成一条消息,同时不会影响到数据库查询的结果。例如:
```sql
CREATE OR REPLACE FUNCTION print_result(result_type type)
RETURNS void AS $$
BEGIN
RAISE NOTICE 'Function returned %', result_type;
END;
$$ LANGUAGE plpgsql;
```
调用这个函数:
```sql
SELECT print_result('示例值');
```
这将在控制台的日志文件中看到提示。
2. `RETURN`: 当函数返回时,`RETURN`语句可用于返回特定值并结束函数执行,也可以通过`RETURN NULL`表示无返回值。如果函数内部有想要打印的信息,可以直接输出:
```sql
CREATE OR REPLACE FUNCTION return_and_print(result_type type) RETURNS type AS $$
BEGIN
RAISE NOTICE 'Function returning %', result_type;
RETURN result_type;
END;
$$ LANGUAGE plpgsql;
```
调用:
```sql
SELECT return_and_print('示例值');
```
同样,你能在日志中查看输出。
阅读全文