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

Sådan fungerer ORD() i MariaDB

I MariaDB, ORD() er en indbygget strengfunktion, der returnerer den numeriske tegnkode for tegnet længst til venstre i dets strengargument.

ORD() funktion kan håndtere multi-byte tegn. Dette er i modsætning til ASCII() funktion, som kun håndterer enkelt-byte (8 bit) tegn.

Syntaks

Syntaksen ser sådan ud:

ORD(str) 

Hvor str er strengargumentet.

ORD() returnerer kun den numeriske kode for længst til venstre karakter af denne streng.

Hvis tegnet længst til venstre er et multi-byte tegn, ORD() bruger følgende formel til at beregne resultatet:

  (1st byte code)
+ (2nd byte code x 256)
+ (3rd byte code x 256 x 256) ... 

Eksempel

Her er et simpelt eksempel til at demonstrere:

SELECT ORD('H'); 

Resultat:

+----------+| ORD('H') |+----------+| 72 |+----------+

Som nævnt, ORD() returnerer kun koden for længst til venstre Karakter. Følgende giver derfor det samme resultat:

SELECT ORD('Homer'); 

Resultat:

+--------------+| ORD('Homer') |+--------------+| 72 |+--------------+

For at demonstrere dette yderligere, lad os få koden fra hvert bogstav i ovenstående streng:

SELECT 
    ORD('H'),
    ORD('o'),
    ORD('m'),
    ORD('e'),
    ORD('r'); 

Resultat:

+-----------+---------------------- --------+| ORD('H') | ORD('o') | ORD('m') | ORD('e') | ORD('r') |+------+----------------- --+--------+| 72 | 111 | 109 | 101 | 114 |+----------------------------- -------+

Multi-Byte-tegn

Her er et eksempel, der bruger et multi-byte tegn:

SELECT ORD('©'); 

Resultat:

+------------+| ORD('©') |+-----------+| 49833 |+------------+

Skrivar og bogstaver

Store bogstaver har en anden ASCII-værdi end deres små bogstaver.

Eksempel:

SELECT 
    ORD('H'),
    ORD('h'); 

Resultat:

+----------+--------+| ORD('H') | ORD('h') |+----------+----------+| 72 | 104 |+----------+----------+

Et databaseeksempel

Her er et eksempel på brug af ORD() i en databaseforespørgsel:

USE PetHouse;
SELECT 
  PetName, 
  ORD(PetName) AS 'ASCII value of leftmost character'
FROM Pets; 

Resultat:

+--------+-------------------------------------------+ | Kæledyrsnavn | ASCII-værdi for tegn længst til venstre |+---------+---------------------------------------- --+| Fluffy | 70 || Hent | 70 || Ridse | 83 || Wag | 87 || Tweet | 84 || Fluffy | 70 || Bark | 66 || Mjav | 77 |+---------+--------------------------------------------+

Lyst til højre

Her bruger jeg RIGHT() funktion til at returnere tegnet længst til højre fra hvert kæledyrsnavn og derefter bruge det igen med ORD() funktion for at returnere ASCII-værdien for det pågældende tegn.

USE PetHouse;
SELECT 
  PetName,
  RIGHT(PetName, 1) 'Rightmost character',
  ORD(RIGHT(PetName, 1)) 'ASCII code'
FROM Pets; 

Resultat:

+--------+---------------------+-----------+| Kæledyrsnavn | Tegn længst til højre | ASCII-kode |+--------+----------------------+-----------+| Fluffy | y | 121 || Hent | h | 104 || Ridse | h | 104 || Wag | g | 103 || Tweet | t | 116 || Fluffy | y | 121 || Bark | k | 107 || Mjav | w | 119 |+--------+----------------------+-----------+ 

Tomme strenge

Angivelse af en tom streng resulterer i 0 bliver returneret.

SELECT ORD(''); 

Resultat:

+--------+| ORD('') |+--------+| 0 |+---------+

Nul-værdier

Giver null resulterer i null bliver returneret.

SELECT ORD(null); 

Resultat:

+------------+| ORD(null) |+------------+| NULL |+------------+

  1. Skift en eksisterende kolonne til en beregnet kolonne i SQL Server (T-SQL-eksempel)

  2. NLS_COLLATION_NAME() Funktion i Oracle

  3. hvordan udfører man Stored Procedure i SQL Developer?

  4. Sådan gendannes en SQL Server-database på en Mac ved hjælp af SQL Operations Studio