我有JSONB列存储阵列JSONB /串的表( value_r
在下面的例子列)。 什么是最简单的(和有效的),以JSONB柱内JSONB数组排序只是内容(也存储串)的方式?
我一直在寻找最简单的方法(如需要查询,或过程?),因为我有更复杂的SQL代码来应用它。
下面是测试代码:
CREATE TABLE test_table (
id integer,
ordinality bigint,
key_r text,
value_r jsonb
);
INSERT INTO test_table VALUES (1, 1, 'carType', '"sedan"');
INSERT INTO test_table VALUES (1, 1, 'equipment', '["AT", "AC"]');
INSERT INTO test_table VALUES (1, 2, 'extra', '["GPS"]');
INSERT INTO test_table VALUES (1, 2, 'carType', '"hatchback"');
INSERT INTO test_table VALUES (2, 1, 'carType', '"sedan"');
INSERT INTO test_table VALUES (2, 1, 'equipment', '["BB", "AA"]');
INSERT INTO test_table VALUES (3, 1, 'carType', '"hatchback"');
INSERT INTO test_table VALUES (3, 1, 'equipment', '["AT"]');
编辑:
预期成果-因为我打算从两个不同的表比较数组,所以我想统一阵列的内容,所以'["AT", "AC"]'
和'["AC", "AT"]'
成为相同。 坦白地说,它并不重要的“默认”之类的使用:ASC或DESC - 我将只需要运行相同的SQL查询/程序的两个表,使其一致和可比。 比方说,这些都是预期的结果:
INSERT INTO test_table VALUES (1, 1, 'carType', '"sedan"');
INSERT INTO test_table VALUES (1, 1, 'equipment', '["AC", "AT"]'); -- change here
INSERT INTO test_table VALUES (1, 2, 'extra', '["GPS"]');
INSERT INTO test_table VALUES (1, 2, 'carType', '"hatchback"');
INSERT INTO test_table VALUES (2, 1, 'carType', '"sedan"');
INSERT INTO test_table VALUES (2, 1, 'equipment', '["AA", "BB"]'); -- change here
INSERT INTO test_table VALUES (3, 1, 'carType', '"hatchback"');
INSERT INTO test_table VALUES (3, 1, 'equipment', '["AT"]');