以不区分大小写的方式使用json_populate_recordset

是否可以使用json_populate_recordset,以便使用Postgresql(9.6)以不区分大小写的方式比较表列名/ / json键?

例如,以下代码段将返回零行.

CREATE TABLE foo (bar TEXT);
SELECT * from json_populate_recordset(null::foo,'[{"bAr":1}]')

当然我可以将json键转换为小写,或者表名可能区分大小写.

解决方法

我不相信不区分大小写是可能的.如果您事先知道将用于记录的情况(例如,它们总是骆驼),您可以通过引用列名来指定特定情况.

显示不区分大小写的基线示例:

# create type x as (abc integer);
CREATE TYPE
# select * from json_populate_recordset(null::x,'[{"abc" : 1},{"Abc" : 2},{"aBc" : 3},{"abC" : 4}]');
 abc
-----
   1



(4 rows)

现在让我们通过引用列名来选择我们想要使用的特定案例.

# drop type x;
DROP TYPE
# create type x as ("aBc" integer);
CREATE TYPE
edgar=# select * from json_populate_recordset(null::x,{"abC" : 4}]');
 aBc
-----


   3

(4 rows)

如果您无法保证输入数据的大小写,则显示小写的所有内容.

相关文章

前言 做过web项目开发的人对layer弹层组件肯定不陌生,作为l...
前言 前端表单校验是过滤无效数据、假数据、有毒数据的第一步...
前言 图片上传是web项目常见的需求,我基于之前的博客的代码...
前言 导出Excel文件这个功能,通常都是在后端实现返回前端一...
前言 众所周知,js是单线程的,从上往下,从左往右依次执行,...
前言 项目开发中,我们可能会碰到这样的需求:select标签,禁...