Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
ビット文字列を取得し、文字列内の各ビットのローを返します。デフォルトでは、1 のビット値を持つローのみが返されます。
sa_get_bits( bit_string [, only_on_bits ] )
bit_string ビットを取得する対象のビット文字列を指定する LONG VARBIT パラメータ。bit_string パラメータが NULL の場合、ローは返されません。
only_on_bits 任意の BIT パラメータを使用して、オンのビット (値が 1 のビット) を持つローのみを返すかどうかを指定します。1 (デフォルト) を指定すると、オンのビットを持つローのみを返します。0 を指定すると、ビット文字列のすべてのビットのローを返します。
sa_get_bits システムプロシージャは、ビット文字列を復号化し、ビット文字列の各ビットについて 1 つのローを返し、ビットの値を示します。only_on_bits が 1 (デフォルト) または NULL の場合、オンのビットに対応するローのみが返されます。最適化により、オンのビットが少ない長いビット文字列を効率的に処理できます。only_on_bits が 0 に設定されている場合、ビット文字列の各ビットについて 1 つのローが返されます。
たとえば、文 CALL sa_get_bits( '1010' ) は、ビット文字列の位置 1 と 3 に ON のビットを示す、次の結果セットを返します。
CALL sa_get_bits( '1010' )
sa_get_bits システムプロシージャは、ビット文字列を関係に変換するときに使用できます。これは、ビット文字列をテーブルに結合するときや、1 つのバイナリ値としてではなく、結果セットとしてビット文字列を取得するときに使用します。大量に 0 ビットがある場合、これらのビットを取得する必要はないため、ビット文字列を結果セットとして取得する方が効率的です。
なし。
なし
次の例は、sa_get_bits システムプロシージャを使用して、整数のセットをビット文字列としてコード化してから、ジョインで使用するために復号化する方法を示します。
CREATE VARIABLE @s_depts LONG VARBIT; SELECT SET_BITS( DepartmentID ) INTO @s_depts FROM Departments WHERE DepartmentName like 'S%'; SELECT * FROM sa_get_bits( @s_depts ) B JOIN Departments D ON B.bitnum = D.DepartmentID;