7.6.3 LISTおよびALTERコマンドでの属性フィルタ
attribute_filters句を使用すると、LIST
コマンドで表示するオブジェクトを指定できます。一部のALTER
コマンドでも、attribute_filters句がサポートされています。
attribute_filters句の構文は次のとおりです。
WHERE attribute_filter1 [ AND attribute_filter2 ... ]
各attribute_filterNの構文は、次のとおりです。
attribute [ NOT | ! ] operator comparison_value
attributeプレースホルダは、フィルタ処理に使用される属性の名前を表します。次の表に、サポートされている演算子のタイプを示します。これらの演算子は、NOT
または!
と組合せ可能です。
表7-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"
です。
親トピック: CellCLIのオブジェクト属性について