integer_arrayフィールドで定義されたテーブルがあります。次のデータが含まれています。
id | black_list
----+------------
4 |
5 |
8 |
12 |
6 |
7 |
10 | {5}
13 | {5}
3 | {}
9 | {3}
11 | {}
14 | {}
1 | {}
2 | {}
15 | {}
16 | {}
17 | {}
(17 rows)
配列フィールドが空かどうか(NULLかどうか)を確認するためのクエリを作成する必要があります。問題は、{}
値がnullでなく、ARRAY_LENGTH関数から長さを返さないことです。http://www.postgresql.org/docs/8.4/static/functions-array.htmlにリストされている他の配列関数はどれも私が必要としているものではないようです。ARRAY_LENGTH(0 || black_list)
それらすべてに1以上の長さを返すように書くことができることがわかりましたが、それは厄介なハックのようです。これをテストする適切な方法は何ですか?
ボーナス質問:正確には何を{}
代表していますか?その値を返すselectステートメントを書くことができませんでした。ARRAY[]
エラーをスローし、をARRAY[""]
返し{""}
、をARRAY[NULL]
返します{NULL}
。