SQL - ASCII() 函式



SQL 的ASCII()函式根據其在 ASCII 字元集中的程式碼點返回字元字串中第一個字元的十進位制表示。

ASCII 函式接受任何字元資料型別的單個引數。返回一個整數值,該值基於引數的第一個字元。

如果引數為 NULL 或引數為空字串,則 ASCII 函式返回 NULL。我們還可以將 ASCII 函式與 SQL 表中的字串欄位一起使用。

注意 - 對於大寫字母(A 到 Z),ASCII 值 = 65 到 90。對於小寫字母(a 到 z),ASCII 值 = 97 到 122。

以下是 SQL ASCII()函式的語法:

SELECT ASCII (expr);

引數

  • expr - 它提供字串或字元值。

返回值

它返回字元或字串中最左側字元的 ASCII 值。

示例

以下 SELECT 查詢顯示給定字串第一個字元的 SQL ASCII 值。

SELECT ASCII ("SQL stands for Structured Query Language") AS ASCII_S;

輸出

以下是上述查詢的輸出:

+---------+
| ASCII_S |
+---------+
|      83 |
+---------+

在上述資料中,字串為“SQL stands for Structured Query Language”,第一個字元是大寫“S”,該字母的 ASCII 值為 83。因此,查詢顯示了相同的值。

示例

以下 SELECT 查詢顯示我們給定字串的ASCII值。

select ASCII ("Kaushik");

輸出

上述 SQL 查詢產生以下輸出:

+-------------------+
| ASCII ("Kaushik") |
+-------------------+
|                75 |
+-------------------+

在上面我們知道 ASCII 表示第一個字元。因此,即使我們沒有指定字串的字元。它也會將字串字元的輸出顯示為 ASCII 值。

示例

以下 SELECT 查詢顯示“B”字元的ASCII值。

SELECT ASCII("B");

輸出

執行上述查詢後,將產生以下輸出:

+------------+
| ASCII("B") |
+------------+
|         66 |
+------------+

在上面的查詢中,我們直接傳遞了字元的 ASCII 值。

示例

您可以將表列作為引數傳遞給ASCII()函式,以將字元或字串轉換為ASCII值。假設我們使用以下CREATE語句建立了一個名為 Customers 的表:

create table CUSTOMERS(
   ID INT NOT NULL, 
   NAME VARCHAR(15) NOT NULL, 
   AGE INT NOT NULL, 
   ADDRESS CHAR(25), 
   SALARY DECIMAL(10, 4), PRIMARY KEY(ID)
);

現在讓我們使用以下 INSERT 語句將條記錄插入到 customers 表中:

insert INTO CUSTOMERS(ID, NAME, AGE, ADDRESS, SALARY) VALUES(1, 'Ramesh', 32, 'Ahmedabad', 2000.00);
insert INTO CUSTOMERS(ID, NAME, AGE, ADDRESS, SALARY) VALUES(2, 'Khilan', 25, 'Delhi', 1500.00);
insert INTO CUSTOMERS(ID, NAME, AGE, ADDRESS, SALARY) VALUES(3, 'kaushik', 23, 'Kota', 2000.00);
insert INTO CUSTOMERS(ID, NAME, AGE, ADDRESS, SALARY) VALUES(4, 'Chaitali', 25, 'Mumbai', 6500.00);
insert INTO CUSTOMERS(ID, NAME, AGE, ADDRESS, SALARY) VALUES(5, 'Hardik', 27, 'Bhopal', 8500.00);
insert INTO CUSTOMERS(ID, NAME, AGE, ADDRESS, SALARY) VALUES(6, 'Komal', 22, 'MP', 4500.00);
insert INTO CUSTOMERS(ID, NAME, AGE, ADDRESS, SALARY) VALUES(7, 'Muffy', 24, 'Indore', 10000.00);

以下查詢顯示錶中NAME列中第一個最左側字元的ASCII值。 -

SELECT NAME, ASCII(NAME) As ASCIIvalue from CUSTOMERS;

輸出

執行上述語句後,將產生以下輸出:

+----------+------------+
| NAME     | ASCIIvalue |
+----------+------------+
| Ramesh   |         82 |
| Khilan   |         75 |
| kaushik  |        107 |
| Chaitali |         67 |
| Hardik   |         72 |
| Komal    |         75 |
| Muffy    |         77 |
+----------+------------+

示例

以下 SELECT 查詢使用 ASCII 函式以及上述 CUSTOMERS 表中 AGE 大於 24 的那些 CUSTOMERS 的 NAME 和 ADDRESS 列。

SELECT ID, NAME, ASCII(NAME), ADDRESS, ASCII(ADDRESS) FROM CUSTOMERS WHERE AGE > 24;

輸出

執行上述語句後,將產生以下輸出:

+----+----------+-------------+-----------+----------------+
| ID | NAME     | ASCII(NAME) | ADDRESS   | ASCII(ADDRESS) |
+----+----------+-------------+-----------+----------------+
|  1 | Ramesh   |          82 | Ahmedabad |             65 |
|  2 | Khilan   |          75 | Delhi     |             68 |
|  4 | Chaitali |          67 | Mumbai    |             77 |
|  5 | Hardik   |          72 | Bhopal    |             66 |
+----+----------+-------------+-----------+----------------+
sql-string-functions.htm
廣告