postgresql 判断参数是否为空,拼接字符串的条件查询
来源:互联网 发布:怎么看淘宝的注册时间 编辑:程序博客网 时间:2024/05/18 00:16
CREATE OR REPLACE
FUNCTION 名称(
IN no text,
IN mac text,
IN station_no text)
RETURNS TABLE(v_id integer, v_no text, v_mac text, v_station_id integer, v_station_no integer, v_station_name text) AS
$BODY$
DECLARE
sql text;
sql_temp text;
count integer;
BEGIN
sql:='SELECT
a.sid,
a.no,
a.mac,
b.sid,
b.no,
b.name
FROM tb_handset a
INNER JOIN tb_station b
ON a.station_id = b.sid';
IF in_no = '' AND in_mac = '' AND in_station_no = '' THEN
RETURN QUERY EXECUTE sql;
ELSE
sql:=sql||' WHERE ';
sql_temp:='';
IF in_no <> '' THEN
sql_temp:= sql_temp ||'AND a.no ='''||in_no||'''';
END IF;
IF in_mac <> '' THEN
sql_temp:= sql_temp ||'AND a.mac ='''||in_mac||'''';
END IF;
IF in_station_no <> '' THEN
sql_temp:= sql_temp || 'AND b.no ='''||in_station_no||'''';
END IF;
SELECT length(sql_temp) INTO count; //查询字符串长度
SELECT substring(sql_temp from 5 for count) INTO sql_temp; //截取字符串
sql:= sql ||sql_temp;
RETURN QUERY EXECUTE sql;
END IF;
END
$BODY$
LANGUAGE plpgsql VOLATILE;
FUNCTION 名称(
IN no text,
IN mac text,
IN station_no text)
RETURNS TABLE(v_id integer, v_no text, v_mac text, v_station_id integer, v_station_no integer, v_station_name text) AS
$BODY$
DECLARE
sql text;
sql_temp text;
count integer;
BEGIN
sql:='SELECT
a.sid,
a.no,
a.mac,
b.sid,
b.no,
b.name
FROM tb_handset a
INNER JOIN tb_station b
ON a.station_id = b.sid';
IF in_no = '' AND in_mac = '' AND in_station_no = '' THEN
RETURN QUERY EXECUTE sql;
ELSE
sql:=sql||' WHERE ';
sql_temp:='';
IF in_no <> '' THEN
sql_temp:= sql_temp ||'AND a.no ='''||in_no||'''';
END IF;
IF in_mac <> '' THEN
sql_temp:= sql_temp ||'AND a.mac ='''||in_mac||'''';
END IF;
IF in_station_no <> '' THEN
sql_temp:= sql_temp || 'AND b.no ='''||in_station_no||'''';
END IF;
SELECT length(sql_temp) INTO count; //查询字符串长度
SELECT substring(sql_temp from 5 for count) INTO sql_temp; //截取字符串
sql:= sql ||sql_temp;
RETURN QUERY EXECUTE sql;
END IF;
END
$BODY$
LANGUAGE plpgsql VOLATILE;
0 0
- postgresql 判断参数是否为空,拼接字符串的条件查询
- 判断存储过程查询条件参数为空
- 判断字符串是否为空的方法
- 判断字符串是否为空的方法
- 判断字符串是否为空的方法
- postgresql 判断字段是否为空
- 判断字符串是否为空
- 判断是否为空字符串
- 判断字符串是否为空
- 判断字符串是否为空
- 判断字符串是否为空
- 判断字符串 是否为空
- 判断字符串是否为空
- 判断字符串是否为空
- 判断字符串是否为空
- 判断字符串是否为空
- 判断字符串是否为空
- 判断字符串是否为空
- Expressions are not allowed at the top level
- linux同时创建多进程的方法
- 软件测试流程
- Reverse Integer C++
- 欢迎使用CSDN-markdown编辑器
- postgresql 判断参数是否为空,拼接字符串的条件查询
- C++ 多线程
- webapp地址
- 生动详细解释javascript的冒泡和捕获
- 删除Chrome地址栏自动补齐的某个URL
- vpn和ftp服务搭建
- ios 用其他app打开文件
- WebStrom编写CoffeeScript使用谷歌浏览器进行调试
- leetcode283---Move Zeroes(把0移到数组后面)