从方括号和双引号的文本数组中获取元素

时间:2019-08-23 12:46:03

标签: sql postgresql function stored-procedures plpgsql

我正在编写plpgsql函数,并从JSON接收参数。我的JSON字段之一如下:[“ 2019-01-01”,“ 2018-03-06”]

我需要使用这些日期来构建查询和WHERE过滤器。

查询如下:

SQLquery = 'SELECT * from t1 WHERE day > '''||array_field_1||''' AND day < '''||array_field_2'''

问题在于Postgres数组中的花括号应该是大括号,而字符串应该是单引号。

我实际上能够做到,但是代码丑陋而令人尴尬。但是以某种方式我找不到与内置Postgres函数一起使用的东西...

令人尴尬的代码是:

        my_array: = '["2019-01-01", "2018-03-06"]'
        temp := TRIM(TRIM(TRIM(my_array, '"'),'['),']');
        temp := replace(split_part(temp, ',', 1),'"','''');
        temp := replace(split_part(temp, ',', 2),'"','''');

0 个答案:

没有答案