Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
453 views
in Technique[技术] by (71.8m points)

postgresql - PSQL return only value from jsonb_each

I'm calling jsonb_each_text and it is working exactly as I expect, returning me this:

select jsonb_each_text('{"text": "this is text", "text2": "this is text2", "f_id": "21"}') as line;
          line           
-------------------------
 (f_id,21)
 (text,"this is text")
 (text2,"this is text2")
(3 rows)

I know that I can easily return just the keys by doing this:

select jsonb_object_keys('{"text": "this is text", "text2": "this is text2", "f_id": "21"}') as line;
 line  
-------
 f_id
 text
 text2
(3 rows)

Is there a way I can only return the values?

So for example, I'd like this as my output:

          line           
-------------------------
21
"this is text"
"this is text2"

The values don't need to be unique or anything.

I haven't been able to find an equivalent to jsonb_object_keys for values only.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Use it as a proper set returning function:

select t.value
from jsonb_each_text('{"text": "this is text", "text2": "this is text2", "f_id": "21"}') as t(key, value);

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...