ASCII() 函数根据ASCII字符集中字符的代码点返回字符字符串中第一个字符的十进制表示。
ASCII函数接受一个任意字符数据类型的参数。根据参数的第一个字符返回一个整数值。
如果参数为NULL或参数为一个空字符串,ASCII函数将返回NULL。我们还可以在SQL表中的字符串字段中使用ASCII函数。
注意 − 大写字母(A到Z)的ASCII值为65到90。小写字母(a到z)的ASCII值为97到122。
以下是ASCII() 函数的语法 −
SELECT ASCII (expr);
1、参数
- expr - 它可以是字符串或字符值。
2、返回值
它返回字符的ASCII值或字符串中最左边的字符。
3、示例1
下面的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。因此,查询显示了相同的值。
4、示例2
以下SELECT查询显示了我们给定字符串的 ASCII 值。
select ASCII ("Kaushik");
上述SQL查询产生以下输出-
+-------------------+
| ASCII ("Kaushik") |
+-------------------+
| 75 |
+-------------------+
在上面我们知道ASCII表示第一个字符的表示方法。所以,即使我们不是字符串的指定字符,它也会将字符串字符的输出显示为ASCII值。
5、示例3
以下SELECT查询显示了字符’B’的 ASCII 值。
SELECT ASCII("B");
在执行上述查询时,将产生以下输出:
+------------+
| ASCII("B") |
+------------+
| 66 |
+------------+
在上面的查询中,我们直接传递了ASCII值的字符。
6、示例4
您可以将表列作为参数传递给 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 |
+----------+------------+
7、示例5
下面的SELECT查询使用ASCII函数,针对上面CUSTOMERS表中年龄大于24的客户的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 |
+----+----------+-------------+-----------+----------------+