sql >> Database teknologi >  >> RDS >> MariaDB

Sådan fungerer EXPORT_SET() i MariaDB

I MariaDB, EXPORT_SET() er en indbygget strengfunktion, der returnerer en streng, der afspejler bits i den angivne værdi. For hver bit, der er sat i den angivne værdi, får du en "on"-streng, og for hver bit, der ikke er sat i værdien, får du en "off"-streng.

Den accepterer minimum tre argumenter plus to valgfrie argumenter.

Syntaks

Syntaksen ser sådan ud:

EXPORT_SET(bit, til, fra[, separator[, antal_bit]]) 

Følgende tabel giver en forklaring på disse argumenter.

bits Den værdi, som du gerne vil have resultaterne returneret for. Leveres som et heltal, men det er konverteret til bits. For hver bit, der er indstillet i denne værdi, får du en on streng, og for hver bit, der ikke er angivet i værdien, får du en fra snor. Bittene undersøges fra højre mod venstre (fra lavordens til højordens bits).
til Den streng, der returneres for enhver bits.
fra Den streng, der returneres for enhver fra bits.
separator Valgfrit argument, som du kan bruge til at angive den separator, der skal bruges. Standardværdien er kommategnet. Derfor, hvis du ikke angiver dette argument, bruges et komma som separator.
antal_bits Antallet af bits, der skal undersøges. Standardværdien er 64. Hvis du angiver en større værdi, klippes denne lydløst til 64, hvis den er større end 64.

Eksempel

Her er et grundlæggende eksempel:

SELECT EXPORT_SET(13,'Til','Fra',',',4); 

Resultat:

+--------------------------------+| EXPORT_SET(13,'Til','Fra',',',4) |+------------------------------------ ---+| Til, Fra, Til, Til |+--------------------------------+

Vi kan se, at den første, tredje og fjerde bit er sat, men den anden er ikke.

Vi kan bruge BIN() funktion for at returnere et lignende resultat, men i omvendt rækkefølge:

VÆLG BIN(13); 

Resultat:

+--------+| BIN(13) |+---------+| 1101 |+---------+

BIN() funktion returnerer en strengrepræsentation af den binære værdi af den givne longlong. I dette eksempel returnerede den tre 1 s.

I vores EXPORT_SET() for eksempel specificerede vi det on og fra skal bruges til at repræsentere 1 og 0 henholdsvis. Vi kan dog ændre det (nedenfor).

Også med EXPORT_SET() , tilføjes strenge til resultatet fra venstre mod højre. Derfor resultatet fra EXPORT_SET() ligner et spejlbillede af resultatet fra BIN() .

Skift tænd/sluk-værdierne

Her er det igen, men denne gang bruger vi en anden streng til on og fra oplyser.

SELECT EXPORT_SET(7,'1','0',',',4); 

Resultat:

+-------------------------------------+| EXPORT_SET(7,'1','0',',',4) |+-----------------------------------+ | 1,1,1,0 |+-------------------------------------+

Denne gang bruger vi 1 og 0 , svarende til hvad BIN() funktion returnerer, men med en tilføjet separator (og omvendt).

Skift separatoren

Det fjerde (valgfri) argument angiver, hvilken separator der skal bruges. Her er den med en anden separator:

SELECT EXPORT_SET(7,'True','False','-',4); 

Resultat:

+--------------------------------------------+| EXPORT_SET(7,'True','False','-',4) |+------------------------------------ ------+| True-True-True-False |+--------------------------------------------+

Skift antallet af bits, der skal undersøges

Det femte (valgfrie) argument angiver, hvor mange bit der skal undersøges. I de foregående eksempler brugte vi 4 som antallet af bits at undersøge. Vi kan øge dette, hvis vi vil:

SELECT EXPORT_SET(7,'1','0',',',10); 

Resultat:

+--------------------------------------+| EXPORT_SET(7,'1','0',',',10) |+------------------------------------ +| 1,1,1,0,0,0,0,0,0,0 |+------------------------------------ -+

I dette tilfælde er alle de ekstra bits ikke indstillet. Lad os øge værdien af ​​det første argument for at se, hvordan dette påvirker resultatet:

SELECT EXPORT_SET(172,'1','0',',',10); 

Resultat:

+--------------------------------+| EXPORT_SET(172,'1','0',',',10) |+------------------------------------ --+| 0,0,1,1,0,1,0,1,0,0 |+------------------------------------ ---+

Standardværdier

Som nævnt er det fjerde og femte argument valgfrit. Når du udelader disse, bruges standardværdierne.

Standard antal bits

Hvis vi fjerner det sidste argument, undersøges 64 bit:

SELECT EXPORT_SET(172,'1','0',''); 

Resultat:

+---------------------------------------------- --------------------+| EXPORT_SET(172,'1','0','') |+-------------------------------- ----------------------------------+| 00110101000000000000000000000000000000000000000000000000000000000000 |+-------------------------------------------------------- -------------------+

I dette tilfælde fjernede jeg også separatoren for at gøre output mere kortfattet.

Standardseparator

Vi kan også fjerne separatorargumentet. Når vi gør dette, EXPORT_SET() bruger kommaet som standardseparator.

SELECT EXPORT_SET(123456789,'1','0'); 

Resultat:

+---------------------------------------------- ----------------------------------------------------------+ -------------------------------------------------- -------------------------------------------------- ----------------------------+| EXPORT_SET(123456789;'1';'0') |+---------------------------------------- -------------------------------------------------- --------------------------------------------------+| 1,0,1,0,1,0,0,0,1,0,1,1,0,0,1,1,1,1,0,1,1,0,1,0,1, 1,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 |+-------------------- -------------------------------------------------- -------------------------------------------------- --------+

Nul-argumenter

Hvis nogen af ​​argumenterne er null , resultatet er null :

VÆLG EXPORT_SET(null,'1','0') AS "1", EXPORT_SET(7,null,'0') AS "2", EXPORT_SET(7,'1',null) AS "3", EXPORT_SET(7,'1','0',nul,4) SOM "4", EXPORT_SET(7,'1','0',',',null) SOM "5";

Resultat:

+------+------+------+------+------+| 1 | 2 | 3 | 4 | 5 |+------+------+------+------+------+| NULL | NULL | NULL | NULL | NULL |+------+------+------+------+------+

Manglende argumenter

Kalder EXPORT_SET() uden at sende nogen argumenter (eller med det forkerte antal argumenter) resulterer i en fejl:

VÆLG EXPORT_SET(); 

Resultat:

FEJL 1582 (42000):Forkert parameterantal i kaldet til den oprindelige funktion 'EXPORT_SET'

  1. Sådan forbinder du Python til SQL Server for at automatisere backend-processen

  2. Sådan laver du en indre joinforbindelse på rækkenummer i sql-server

  3. Er det muligt at oprette Oracle Database-objekttyper inde i PL/SQL?

  4. SQL Server 2008 række Indsæt og opdater tidsstempler