条件
products
テーブルの、product_types
カラムがJSONBであるとき、product_types
内にあるJSONが、
[{"name": "awesome", "line_number": 1}]
という形式のとき、この line_number
でソートする。product_types
内のJSONが配列以外の場合も考慮する。
SQL
SELECT id, product_types
FROM products
ORDER BY
CASE
WHEN jsonb_typeof(product_types) = 'array'
THEN jsonb_array_elements(product_types)->>'line_number'
ELSE NULL
END ASC;