优秀的编程知识分享平台

网站首页 > 技术文章 正文

PostgreSQL通过Python实现列表连接为字符串

nanyue 2024-09-14 06:28:02 技术文章 6 ℃

需求:

已知某数据采集后格式问列表文本

  • ['人源胰岛素']
  • ['罗可曼', '依泊汀β', '促红素β', '倍他依泊汀']

需将其转为文本格式,指定符号将列表元素进行连接

  • 人源胰岛素
  • 罗可曼,依泊汀β,促红素β,倍他依泊汀

实现逻辑

  1. PostgreSQL函数,传入参数为(string)文本以及连接符(separator)
  2. Python
  • 判断传入值是否为空
  • 不为空:通过Python 的eval函数将文本格式列表转为 列表类型
  • 为空:将其返回值设置为None,即NULL
-- 将列表转为 文本字符串
DROP FUNCTION IF EXISTS JOIN_LIST;
CREATE FUNCTION JOIN_LIST(string TEXT,separator TEXT)
  RETURNS text
AS $
global string
if string:
	string_list=eval(string)
	ret=separator.join(string_list)
else:
	string_list=None
	ret=None
return ret
$ LANGUAGE plpython3u;

执行SQL语句并调用函数

SELECT "cnAliasName",JOIN_LIST("cnAliasName",',') FROM "表名";


最近发表
标签列表