报错'char_length'非内置函数名,求SQL字符串字符数获取指导
解决
char_length函数报错及获取字符串字符数的方法 报错原因
你遇到的'char_length' is not a recognized built-in function name错误,是因为不同SQL数据库的内置函数方言不同——CHAR_LENGTH()仅在MySQL、PostgreSQL、SQLite等数据库中支持,像SQL Server这类数据库并没有这个函数。
各主流数据库获取字符数的正确方法
- MySQL/PostgreSQL/SQLite:直接用
CHAR_LENGTH()或等价的CHARACTER_LENGTH(),示例:SELECT CHAR_LENGTH('你的测试字符串') AS 字符数; - SQL Server:
- 忽略末尾空格的字符数用
LEN():SELECT LEN('Hello World ') AS 字符数; -- 返回11,末尾空格被忽略 - 需要包含末尾空格的字符数,根据字段类型计算:
- 若字段是
nvarchar(Unicode编码,每个字符占2字节):SELECT DATALENGTH(N'Hello World ') / 2 AS 字符数; -- 返回14,包含末尾空格 - 若字段是
varchar(单字节编码):SELECT DATALENGTH('Hello World ') AS 字符数; -- 返回14,包含末尾空格
- 若字段是
- 忽略末尾空格的字符数用
- Oracle:使用
LENGTH()函数,示例:SELECT LENGTH('Oracle测试') AS 字符数 FROM DUAL;
新手提示
先确认自己使用的数据库类型,再对应选用正确的函数,避免跨数据库混用函数导致报错。
内容的提问来源于stack exchange,提问作者user17620258
相关产品推荐
相关产品推荐

