列名中的特殊字符

Posted

技术标签:

【中文标题】列名中的特殊字符【英文标题】:special character in column name 【发布时间】:2015-05-22 14:26:16 【问题描述】:

我正在处理一个表格,其中某些列具有特殊字符。 我通过连接字符串中的列名来创建视图,并且在执行它时,它在执行语句中给出错误为“无效的列名”。我尝试用转义字符转义那些,但它没有用。尝试将“&”作为列名中“&”的转义字符。 请帮忙。

【问题讨论】:

“特殊字符”是什么意思?您是否使用N' 为您的字符串添加前缀?您可以发布用于创建视图的 sql 吗? table.[funky&name]? @SébastienSevrin 我在列名中有一些与号和一些单引号。尝试使用 N',但没有用。 好的,我以为你使用的是 unicode 字符。那么方括号应该可以解决您的问题。 @SébastienSevrin 也试过方括号!不工作! 【参考方案1】:

根据特殊字符,您可以通过在列名周围放置方括号来解决此问题:

CREATE TABLE dbo.result([!"£$%^&*()] int,[:@~#';'] varchar(50),[<>?/.,] int)

您可以为此目的使用QUOTENAME 函数:

SELECT QUOTENAME('!"£$%^&*')

【讨论】:

【参考方案2】:

你能详细说一下吗?这些是什么特殊字符?

您可以将列名放入 [ ]

【讨论】:

以上是关于列名中的特殊字符的主要内容,如果未能解决你的问题,请参考以下文章

如何将具有特殊字符的列名别名为具有下划线而不是特殊字符的新列名?

在 BigQuery 的列名中包含特殊字符?

如何使用 HIVE JDBC 驱动程序在列名中使用特殊字符?

当列名包含空格和特殊字符时从 data.table 包中读取?

当列名包含特殊字符时,如何将 Convert 函数与 RowFilter/CustomFilter 一起使用?

如何在MySQL列名中使用特殊字符?