Respostas:
Coloque o nome da coluna entre colchetes, assim, from
passa a [de].
select [from] from table;
Também é possível usar o seguinte (útil ao consultar várias tabelas):
select table.[from] from table;
select TableName.from from TableName;
PS: Funciona no MySQL
Se estivesse no PostgreSQL, use aspas duplas ao redor do nome, como:
select "from" from "table";
Nota: Internamente, o PostgreSQL converte automaticamente todos os comandos e parâmetros não citados para minúsculas. Isso tem o efeito de que comandos e identificadores não diferenciam maiúsculas de minúsculas. sEleCt * de tAblE; é interpretado como selecionar * da tabela; . No entanto, os parâmetros dentro de aspas duplas são usados como estão e, portanto, são sensíveis a maiúsculas e minúsculas: selecione * de "tabela"; e selecione * em "Tabela"; obtém o resultado de duas tabelas diferentes.
Estas são as duas maneiras de fazer isso:
SELECT `from` FROM TableName
SELECT TableName.from FROM TableName
Sua pergunta parece estar bem respondida aqui, mas quero apenas adicionar mais um comentário a este assunto.
Aqueles que projetam o banco de dados devem estar cientes das palavras-chave reservadas e evitar usá-las. Se você descobrir alguém usando, informe-o sobre isso (de maneira educada). A palavra-chave aqui é palavra reservada .
Mais Informações:
"Palavras-chave reservadas não devem ser usadas como nomes de objetos. Os bancos de dados atualizados de versões anteriores do SQL Server podem conter identificadores que incluem palavras não reservadas na versão anterior, mas que são palavras reservadas para a versão atual do SQL Server. Você pode consultar o objeto usando identificadores delimitados até que o nome possa ser alterado. " http://msdn.microsoft.com/en-us/library/ms176027.aspx
e
"Se o seu banco de dados contiver nomes que correspondam a palavras-chave reservadas, você deverá usar identificadores delimitados ao se referir a esses objetos. Para obter mais informações, consulte Identificadores (DMX)." http://msdn.microsoft.com/en-us/library/ms132178.aspx
Se você estiver usando o SQL Server, poderá simplesmente colocar os colchetes ao redor do nome da coluna ou da tabela.
select [select]
from [table]
Eu também enfrentei esse problema. E a solução para isso é colocar [Column_Name] assim na consulta.
string query= "Select [Name],[Email] from Person";
Portanto, ele funcionará perfeitamente bem.
Oi Eu trabalho em sistemas Teradata que são completamente compatíveis com ANSI. Use aspas duplas "" para nomear essas colunas.
Por exemplo, type
é uma palavra-chave reservada SQL e, quando usada entre aspas, type
é tratada como um nome especificado pelo usuário.
Veja abaixo o exemplo de código:
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
Você pode colocar o nome da coluna entre colchetes, como:
Select [from] from < ur_tablename>
Ou
Coloque em uma mesa temperada e use como quiser.
Exemplo:
Declare @temp_table table(temp_from varchar(max))
Insert into @temp_table
Select * from your_tablename
Aqui, apenas presumo que o seu_tablename contenha apenas uma coluna (ou seja, de).
[from]
é a única coluna que your_tablename
possui.
"[Total]"
:? Ou talvez haja uma maneira de escapar disso, algo assim [\[Total\]]
?
Corri no mesmo problema ao tentar atualizar uma coluna cujo nome era uma palavra - chave . A solução acima não me ajudou. Eu resolvi isso simplesmente especificando o nome da tabela assim:
UPDATE `survey`
SET survey.values='yes,no'
WHERE (question='Did you agree?')
O seguinte funcionará perfeitamente:
SELECT DISTINCT table.from AS a FROM table
No MySQL, como alternativa às aspas (`), você pode usar a interface do usuário para alterar os nomes das colunas. Clique com o botão direito do mouse na tabela> Alterar tabela> Edite o nome da coluna que contém a palavra-chave sql> Confirmar.
select [from] from <table>
Como uma observação, o acima não funciona no MySQL
A julgar pelas respostas aqui e minha própria experiência. A única resposta aceitável, se você planeja ser portátil, não use palavras-chave SQL para tabela, coluna ou outros nomes.
Todas essas respostas funcionam nos vários bancos de dados, mas aparentemente muitas não suportam a solução ANSI.
SELECT "from" FROM TableName
, agradável e portátil!