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
广告