Postgres:返回 JSON 属性 的前 3 个字符

Postgres: Returning first 3 characters of a JSON property

id | foo
--------
1  | {'source': 'england'}

我正在使用 foo -> 'source' 来提取数据,但我只想获取源的前 3 个字符。

我通常会使用 LEFT(columnName, 3) 但此函数仅在值为字符串时有效。

所以我做不到

foo -> LEFT('source', 3) as source

我该如何解决这个问题?

-> 结果为 JSON

->> 结果为 TEXT

所以,使用这个

select LEFT(foo ->>'source' , 3) from t;

DEMO