EXPORT-SET

功能描述

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

返回一个字符串,该字符串生成规则如下:对于bits中每个二进制位,若是1,则拼接on到结果字符串。否则,拼接off到结果字符串。其间用separator隔开,字符串的长度由number_of_bits决定。

注意事项

  • 必须输入前三个参数。第一个参数(bits)需要输入数字,第二个参数(on)和第三个参数(off)需要输入字符串。

语法格式

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

参数说明

  • bits

    • 输入格式为数字。可以输入任意长度的数字。函数会从右到左(从低位到高位)检查二进制位,字符串从左到右添加到结果中。
    • 当输入数字超过2^ 64或者小于-2^ 63时,输入数字按照PG_INT64_MAX和PG_INT64_MIN处理。
  • on&&off

    输入格式为字符串即可。如:'YYYY'。

  • separator

    结果字符串由separator字符串分隔(默认为逗号字符,)。输入格式为字符串。如:','。

  • number_of_bits

    检查的位数由number_of_bits指定,如果未指定,则默认为64。事实上,除0-64外,负数乃至正无穷,均默认为64。

示例

openGauss=# SELECT EXPORT_SET(5,'Y','N',',',5);
 export_set 
------------
 Y,N,Y,N,N
(1 row)

openGauss=# SELECT EXPORT_SET(5,'Y','N',',');
                                                           export_set                                                            
---------------------------------------------------------------------------------------------------------------------------------
 Y,N,Y,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N
(1 row)

openGauss=# SELECT EXPORT_SET(5,'Y','N');
                                                           export_set                                                            
---------------------------------------------------------------------------------------------------------------------------------
 Y,N,Y,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N
(1 row)

-- 测试上界
openGauss=# SELECT EXPORT_SET(18446744073709551615,'Y','N',',',64);
                                                           export_set                                                            
---------------------------------------------------------------------------------------------------------------------------------
 Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y
(1 row)

openGauss=# SELECT EXPORT_SET(18446744073709551616,'Y','N',',',64);
                                                           export_set                                                            
---------------------------------------------------------------------------------------------------------------------------------
 Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,N
(1 row)

openGauss=# SELECT EXPORT_SET(18446744073709551617,'Y','N',',',64);
                                                           export_set                                                            
---------------------------------------------------------------------------------------------------------------------------------
 Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,N
(1 row)

-- 测试下界
openGauss=# SELECT EXPORT_SET(-9223372036854775807,'Y','N',',',64);
                                                           export_set                                                            
---------------------------------------------------------------------------------------------------------------------------------
 Y,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,Y
(1 row)

openGauss=# SELECT EXPORT_SET(-9223372036854775808,'Y','N',',',64);
                                                           export_set                                                            
---------------------------------------------------------------------------------------------------------------------------------
 N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,Y
(1 row)

openGauss=# SELECT EXPORT_SET(-9223372036854775809,'Y','N',',',64);
                                                           export_set                                                            
---------------------------------------------------------------------------------------------------------------------------------
 N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,Y
(1 row)

-- 测试超长参数
openGauss=# SELECT EXPORT_SET(-111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111,'Y','N',',',64);
                                                           export_set                                                            
---------------------------------------------------------------------------------------------------------------------------------
 N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,Y
(1 row)

openGauss=# SELECT EXPORT_SET(111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111,'Y','N',',',64);
                                                           export_set                                                            
---------------------------------------------------------------------------------------------------------------------------------
 Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,Y,N
(1 row)

-- 测试长度参数
openGauss=# SELECT EXPORT_SET(5,'Y','N',',',64);
                                                           export_set                                                            
---------------------------------------------------------------------------------------------------------------------------------
 Y,N,Y,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N
(1 row)

openGauss=# SELECT EXPORT_SET(5,'Y','N',',',65);
                                                           export_set                                                            
---------------------------------------------------------------------------------------------------------------------------------
 Y,N,Y,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N
(1 row)

openGauss=# SELECT EXPORT_SET(5,'Y','N',',',-1);
                                                           export_set                                                            
---------------------------------------------------------------------------------------------------------------------------------
 Y,N,Y,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N
(1 row)

openGauss=# SELECT EXPORT_SET(5,'Y','N',',',111111111111111111111111111111111111111111111111111111111111111111111111111111111);
                                                           export_set                                                            
---------------------------------------------------------------------------------------------------------------------------------
 Y,N,Y,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N
(1 row)

openGauss=# SELECT EXPORT_SET(5,'Y','N',',',-111111111111111111111111111111111111111111111111111111111111111111111111111111111);
                                                           export_set                                                            
---------------------------------------------------------------------------------------------------------------------------------
 Y,N,Y,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N,N
(1 row)

-- 测试字符串
openGauss=# SELECT EXPORT_SET(5,'YYYYYYYYYYYYYYYY','N',',',5);
               export_set                
-----------------------------------------
 YYYYYYYYYYYYYYYY,N,YYYYYYYYYYYYYYYY,N,N
(1 row)

openGauss=# SELECT EXPORT_SET(5,'Y','NNNNNNNNNNNNNNN',',',5);
                     export_set                      
-----------------------------------------------------
 Y,NNNNNNNNNNNNNNN,Y,NNNNNNNNNNNNNNN,NNNNNNNNNNNNNNN
(1 row)

openGauss=# SELECT EXPORT_SET(5,'Y','N',',,,,,,,,,,,,',5);
                      export_set                       
-------------------------------------------------------
 Y,,,,,,,,,,,,N,,,,,,,,,,,,Y,,,,,,,,,,,,N,,,,,,,,,,,,N
(1 row)
意见反馈
编组 3备份
    openGauss 2024-05-05 00:46:26
    取消