メインコンテンツまでスキップ
バージョン: 26.x

EXPORT-SET

説明

EXPORT_SETは、整数の各ビットを指定された文字列に変換し、それらを結果文字列に連結するために使用されます。bitsの各ビットが1の場合、結果の対応する位置にon文字列が表示され、各ビットが0の場合、off文字列が表示されます。ビットは右から左の順序(つまり、最下位ビットから最上位ビットへ)でチェックされますが、結果文字列には左から右へ連結されます。ビットはseparatorで区切られます(デフォルトはカンマ,)。

表示されるビット数はnumber_of_bitsパラメータによって決定され、デフォルトは64ビットです。指定されていない場合や範囲外(64より大きい)の場合、自動的に64ビットとして扱われます。

この関数はMySQLのEXPORT_SET functionと同様に動作します。

構文

EXPORT_SET(bits, on, off[, separator[, number_of_bits]])

パラメータ

Parameterデスクリプション
bits変換に使用される整数型(LARGEINT)。値が-2^63未満の場合、-2^63として扱われます。2^64 - 1より大きい場合、2^63 - 1として扱われます。
onビットが1の時に表示される文字列
offビットが0の時に表示される文字列
separatorオプション。ビットを区切るために使用される文字列。デフォルトは','です
number_of_bitsオプション。結果に表示するビット数。整数型(INT)をサポートします。デフォルト値は64で、範囲[0, 64]を超える場合はデフォルト値で自動的に処理されます。

戻り値

文字列を返します。bits内の各ビットについて、最下位ビットから最上位ビットまで、1の場合はonに、0の場合はoffに置き換えられ、順序通りに連結されます。ビットはseparatorで区切られ、最終結果はnumber_of_bitsビットを表示します。

number_of_bitsが範囲[-2^31, 2^31 - 1]を超えているか、関数内のいずれかのパラメータがNULLの場合、NULLを返します。

Example

SELECT EXPORT_SET(-2, '1', '0');
+---------------------------------------------------------------------------------------------------------------------------------+
| EXPORT_SET(-2, '1', '0') |
+---------------------------------------------------------------------------------------------------------------------------------+
| 0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 |
+---------------------------------------------------------------------------------------------------------------------------------+
SELECT EXPORT_SET(5, '1', '0', '||', 5);
+----------------------------------+
| EXPORT_SET(5, '1', '0', '||', 5) |
+----------------------------------+
| 1||0||1||0||0 |
+----------------------------------+
SELECT `bits`, `on`, `off`, `sep`, `num_of_b`
FROM `test_export_set`;
+-------------+--------+-------+-------+----------+
| bits | on | off | sep | num_of_b |
+-------------+--------+-------+-------+----------+
| -1 | 1 | 0 | , | 50 |
| -2 | 1 | 0 | | 64 |
| 5 | Y | N | , | 5 |
| 5 | 1 | 0 | | 64 |
| 5 | | 0 | | 65 |
| 6 | 1 | | | 63 |
| 19284249819 | 1 | 0 | , | 64 |
| 9 | apache | doris | |123| | 64 |
| NULL | 1 | 0 | , | 5 |
| 5 | NULL | 0 | | 5 |
| 5 | 1 | NULL | , | 10 |
| 5 | 1 | 0 | NULL | 10 |
| 5 | 1 | 0 | , | NULL |
+-------------+--------+-------+-------+----------+
SELECT EXPORT_SET(`bits`, `on`, `off`, `sep`, `num_of_b`)
FROM `test_export_set`;
+-------------+--------+-------+-------+----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| bits | on | off | sep | num_of_b | ans |
+-------------+--------+-------+-------+----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| -1 | 1 | 0 | , | 50 | 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 |
| -2 | 1 | 0 | | 64 | 0111111111111111111111111111111111111111111111111111111111111111 |
| 5 | Y | N | , | 5 | Y,N,Y,N,N |
| 5 | 1 | 0 | | 64 | 1010000000000000000000000000000000000000000000000000000000000000 |
| 5 | | 0 | | 65 | 00000000000000000000000000000000000000000000000000000000000000 |
| 6 | 1 | | | 63 | 11 |
| 19284249819 | 1 | 0 | , | 64 | 1,1,0,1,1,0,1,1,0,0,1,1,0,0,1,0,0,1,1,1,0,1,1,0,1,0,1,1,1,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 |
| 9 | apache | doris | |123| | 64 | apache|123|doris|123|doris|123|apache|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris|123|doris |
| NULL | 1 | 0 | , | 5 | NULL |
| 5 | NULL | 0 | | 5 | NULL |
| 5 | 1 | NULL | , | 10 | NULL |
| 5 | 1 | 0 | NULL | 10 | NULL |
| 5 | 1 | 0 | , | NULL | NULL |
+-------------+--------+-------+-------+----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
-- max value: 2^64 - 1
SELECT EXPORT_SET(18446744073709551615, '1', '0');
+---------------------------------------------------------------------------------------------------------------------------------+
| EXPORT_SET(18446744073709551615, '1', '0') |
+---------------------------------------------------------------------------------------------------------------------------------+
| 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1 |
+---------------------------------------------------------------------------------------------------------------------------------+
-- 2^64 out of bound, the bits will be set to 2^63 - 1
SELECT EXPORT_SET(18446744073709551616, '1', '0');
+---------------------------------------------------------------------------------------------------------------------------------+
| EXPORT_SET(18446744073709551616, '1', '0') |
+---------------------------------------------------------------------------------------------------------------------------------+
| 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0 |
+---------------------------------------------------------------------------------------------------------------------------------+
-- min value: -2^63
SELECT EXPORT_SET(-9223372036854775808, '1', '0');
+---------------------------------------------------------------------------------------------------------------------------------+
| EXPORT_SET(-9223372036854775808, '1', '0') |
+---------------------------------------------------------------------------------------------------------------------------------+
| 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 |
+---------------------------------------------------------------------------------------------------------------------------------+
-- out of bound, the bits will be set to -2^63
SELECT EXPORT_SET(-184467440737095516161, '1', '0');
+---------------------------------------------------------------------------------------------------------------------------------+
| EXPORT_SET(-184467440737095516161, '1', '0') |
+---------------------------------------------------------------------------------------------------------------------------------+
| 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1 |
+---------------------------------------------------------------------------------------------------------------------------------+