4

在 SQL 中,char() 将整数转换为字符(例如,char(101) 返回 'e')。char() 的反向函数是什么(例如,将 'e' 转换为 101)?

4

2 回答 2

8

ORD()ASCII(),尽管它们并不是严格意义上的反转,因为它们只会处理传入的字符串的第一个字符,而CHAR()可以从数字列表中构建一个字符串。

根据Michael Buen 的回答,值得注意的ORD()是 MySql-only,而ASCII()得到更广泛的支持,但不处理多字节字符。

mysql> SELECT CHAR(104), ASCII('h'), ORD('h');
+-----------+------------+----------+
| CHAR(104) | ASCII('h') | ORD('h') |
+-----------+------------+----------+
| h         |        104 |      104 |
+-----------+------------+----------+
于 2012-04-27T04:14:18.330 回答
6

我正要支持 BluesRockAddict 的答案,但他删除了他的答案,但这是最好的答案,ASCII 适用于许多平台,例如 SQL Server、Oracle、Postgresql,当然还有 MySQL

SELECT ASCII('e')

ORD 仅适用于 MySQL

http://www.sqlfiddle.com/

于 2012-04-27T04:21:49.710 回答