node.js - 如果关键字为 null 则获取所有行,否则返回匹配

标签 node.js postgresql plpgsql postgresql-9.1 postgresql-9.3

我在 Postgres 中有一个 plpgsql 函数。当关键字不为空并返回匹配结果时它工作正常但是当关键字为空时我想忽略它并返回任意行。

CREATE OR REPLACE FUNCTION get_all_companies(_keyword varchar(255))
RETURNS TABLE(
id INTEGER,
name VARCHAR,
isactive boolean
) AS $$

BEGIN
RETURN Query 
SELECT c.id, c.name, c.isactive FROM companydetail AS c
WHERE c.name ~* _keyword LIMIT 50 ;
END;$$
LANGUAGE plpgsql;

最佳答案

验证它是否为 NULL 或为空:

RETURN QUERY
SELECT c.id, c.name, c.isactive 
FROM companydetail AS c 
WHERE _keyword IS NULL
   OR _keyword = ''::varchar(255) 
   OR c.name ~* _keyword 
LIMIT 50 ;

关于node.js - 如果关键字为 null 则获取所有行,否则返回匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49753019/

相关文章:

node.js - 返回重复结果的 Mongoose 查询

javascript - 使用 Node js Await/Async 函数

node.js - 如何使用expressJS部分/集合以相反的顺序显示集合?

java - '@>'符号在postgresql中是什么意思?

ruby - 将数组作为参数添加到 ruby​​ 中的 sql 查询

postgresql - 创建一个方法,从可用作 View 的不同表中返回一组记录

javascript - 代理类的 TypeError - TypeError : 'set' on proxy: trap returned truish for property

arrays - PL/pgSQL 函数插入行数组

postgresql - 数组搜索不使用索引

php - 将字段转换为时间戳以进行比较