0
私は現在、このようなPostgreSQLテーブルを持っています。データカラムはJSONです。JSONデータにあるかもしれないし、そうでないかもしれないキーに基づいてテーブルをクエリしようとしています。私はそれを行うためのより効率的な方法は、おそらくそこにある知っているPostgres query json data
存在しない列「789」:
| A | B | C | data |
----------------------------------------------------
| 1 | 2 | 3 | {} |
| 2 | 3 | 3 | {"name": "jack", "message": "123"} |
| 3 | 4 | 3 | {"name": "jill", "voice": "456"} |
| 4 | 2 | 3 | {"name": "bill", "email" "789"} |
は現在、私は、私は現在、エラー、エラーを取得しています
SELECT *
FROM (
SELECT
a,
b,
c,
coalesce(
CASE
WHEN (data ->> 'message') IS NULL
THEN NULL
ELSE (data ->> 'message')
END,
'') AS message,
coalesce(
CASE
WHEN (data ->> 'voice') IS NULL
THEN NULL
ELSE (data ->> 'voice')
END,
'') AS voice,
coalesce(
CASE
WHEN (data ->> 'email') IS NULL
THEN NULL
ELSE (data ->> 'email')
END,
'') AS email
FROM mytable) AS t
WHERE (t.message = "789" OR
t.voice = "789" OR
t.email = "789");
を持っています。どんな助けでも大歓迎です。
文字列をSQLで単一引用符で囲む必要があります。二重引用符は識別子のためのものです。 –
Ahhhhhh!とても明らかです。ありがとう –