9.5.3 LISTおよびALTERコマンドでの属性フィルタ
attribute_filters句を使用して、LISTコマンドで表示するオブジェクトを指定できます。一部のALTERコマンドでも、attribute_filters句がサポートされています。
attribute_filters句の構文は次のとおりです。
WHERE attribute_filter1 [ AND attribute_filter2 ... ]各attribute_filterNの構文は、次のとおりです。
attribute [ NOT | ! ] operator comparison_valueattributeプレースホルダは、フィルタ処理に使用される属性の名前を表します。次の表に、サポートされている演算子のタイプを示します。これらの演算子は、NOTまたは!と組合せ可能です。
表9-1 属性フィルタでサポートされる演算子
| 演算子 | 説明 |
|---|---|
|
|
文字列、ステータスまたは数値の属性間の等号をテストします。次に例を示します: status NOT = normal |
|
|
指定された比較値より大きい属性値かどうかをテストします。次に例を示します: size > 139920M |
|
|
指定された比較値より小さい属性値かどうかをテストします。次に例を示します: freeSpace < 100M |
|
|
類似性の一致をテストします。 文字列の比較では、 たとえば、SQLワイルドカード' 数値の比較では、 |
サポートされる演算子で使用される場合、comparison_valueは次のデータ型のいずれかです。
- 数値: 大きい値は、接尾辞
M(1024^2)、G(1024^3)またはT(1024^4)を使用して表すことができます - リテラル:
activeやnormalなどの値 - 日時: 有効なISO 8601タイムスタンプを含む値。たとえば、
"2024-01-02T00:01:00-07:00"は、UTC−07:00に対応するタイムゾーンで、2024年1月2日の午前0時1分を表します。 - 文字列: 一重引用符(
' ')または二重引用符(" ")で区切られる値 NULL: 未割当ての文字列または空のリスト
attribute_filters句を使用するときは、次の点に注意してください:
-
attributeまたはcomparison_valueのいずれかが文字列の場合、常に文字列比較が使用されます。他方の値が文字列でない場合は、暗黙的に比較用の文字列に変換されます。
たとえば、多くのオブジェクトには、そのオブジェクトのインスタンスの空き領域量(バイト単位)を含む数値の
freespace属性があります。その場合、where freespace = 0Mは、空き領域のないオブジェクトと一致する数値比較です。しかし、where freespace = "0M"は、freespaceの数値に文字Mを含めることはできないため、どのオブジェクトとも一致しない文字列比較です。 -
等号(
=)、大なり(>)または小なり(<)演算子を使用した文字列比較では、大/小文字は区別されません。小文字への変換後に同じ文字シーケンスが含まれる場合、文字列は等しいと見なされます。たとえば、
"Apple" = "apple"です。大なり(
>)または小なり(<)演算子の場合、文字列は、小文字への変換後、各文字のUnicode値に基づいて辞書順で比較されます。違い最初の位置にあるUnicode文字値が最も小さい文字列が、小さい方と見なされます。たとえば、"appendix" < "apple"であるのは、両方の文字列が"app"で始まり、"appendix"の'e'文字が"apple"の'l'より小さいUnicode値であるためです。文字の位置に違いがなく、文字列の長さが異なる場合、短い文字列が辞書順で長い文字列の前になります。たとえば、"apple" < "apples"です。
親トピック: DBMCLIのオブジェクト属性