SELECT语句别名使用限制:能否使用包含|等特殊字符的别名?
别名合法格式规范及实现方案
首先明确SQL标识符的通用规则:
- 未被包裹的普通别名只能使用字母、数字、下划线,且不能以数字开头,不能和SQL关键字重名
- 包含特殊字符(含
|、空格、中文等)、与关键字重名的别名,只要用对应方言的标识符引用符号包裹,就属于合法格式
你使用的方括号[]是SQL Server、Azure Cosmos DB SQL API、Access等方言支持的标识符引用语法,你写的语句:
SELECT c['name'] AS [App|MyName] FROM c
完全合法,执行后返回的字段名就是App|MyName,可以直接匹配下游数据消费系统的要求,不需要做额外的冗余字段名转换处理。
如果需要兼容其他SQL方言,可调整为对应引用方式:
- MySQL/MariaDB 方言:用反引号包裹,写法为
ASApp|MyName`` - 标准SQL兼容写法:用双引号包裹,写法为
AS "App|MyName",需确保数据库开启QUOTED_IDENTIFIER配置(绝大多数数据库默认开启)
内容的提问来源于stack exchange,提问作者David
相关产品推荐
相关产品推荐

