Answers:
像这样将列名称括在方括号中,from
成为[from]。
select [from] from table;
也可以使用以下命令(在查询多个表时很有用):
select table.[from] from table;
select TableName.from from TableName;
PS:它适用于MySQL
如果它已经存在于PostgreSQL中,请在名称周围使用双引号,例如:
select "from" from "table";
注意:PostgreSQL内部自动将所有未加引号的命令和参数转换为小写。其结果是命令和标识符不区分大小写。表*来自表;解释为表中的select *;。但是,双引号内的参数按原样使用,因此区分大小写:select * from“ table”; 然后从“表格”中选择*;从两个不同的表中获取结果。
在执行此操作时-将其作为其他别名(或者更好的方法是,使用视图或SP并弃用旧的直接访问方法)。
SELECT [from] AS TransferFrom -- Or something else more suitable
FROM TableName
这是两种方法:
从TableName中选择`from`
SELECT TableName.from FROM TableName
您的问题似乎在这里得到了很好的回答,但是我只想对此主题再添加一条评论。
设计数据库的人员应充分了解保留的关键字,并避免使用它们。如果您发现有人在使用它,请以礼貌的方式告知他们。此处的关键字是保留字。
更多信息:
“保留的关键字不应用作对象名称。从早期版本的SQL Server升级的数据库可能包含标识符,这些标识符包括早期版本中未保留的单词,但对于当前版本的SQL Server是保留的单词。您可以参考对象,方法是使用带分隔符的标识符,直到可以更改名称为止。” http://msdn.microsoft.com/en-us/library/ms176027.aspx
和
“如果数据库确实包含与保留关键字匹配的名称,则在引用这些对象时必须使用定界标识符。有关更多信息,请参见标识符(DMX)。” http://msdn.microsoft.com/en-us/library/ms132178.aspx
我也遇到了这个问题。解决此问题的方法是在查询中放入这样的[Column_Name]。
string query= "Select [Name],[Email] from Person";
因此它将很好地工作。
嗨,我在完全符合ANSI的Teradata系统上工作。使用双引号“”来命名此类列。
例如,type
是SQL保留关键字,当在引号中使用时,type
被视为用户指定的名称。
参见下面的代码示例:
CREATE TABLE alpha1
AS
(
SEL
product1
type_of_product AS "type"
FROM beta1
) WITH DATA
PRIMARY INDEX (product1)
--type is a SQL reserved keyword
TYPE
--see? now to retrieve the column you would use:
SEL "type" FROM alpha1
您可以将列名放在方括号中,例如:
Select [from] from < ur_tablename>
要么
放入临时表,然后根据需要使用。
例:
Declare @temp_table table(temp_from varchar(max))
Insert into @temp_table
Select * from your_tablename
在这里,我只是假设your_tablename仅包含一列(即from)。
[from]
是唯一获得的列your_tablename
。
"[Total]"
吗?或者也许有一种方法可以逃脱它,例如[\[Total\]]
?
SELECT "from" FROM TableName
,好携带!