Respuestas:
Envuelva el nombre de la columna entre paréntesis de esta manera, se from
convierte en [desde].
select [from] from table;
También es posible usar lo siguiente (útil cuando se consultan varias tablas):
select table.[from] from table;
select TableName.from from TableName;
PD: Funciona en MySQL
Si hubiera estado en PostgreSQL, use comillas dobles alrededor del nombre, como:
select "from" from "table";
Nota: Internamente PostgreSQL convierte automáticamente todos los comandos y parámetros sin comillas en minúsculas. Eso tiene el efecto de que los comandos e identificadores no distinguen entre mayúsculas y minúsculas. sEleCt * de tAblE; se interpreta como select * de la tabla; . Sin embargo, los parámetros dentro de las comillas dobles se usan tal cual y, por lo tanto, SON sensibles a mayúsculas y minúsculas: seleccione * de "tabla"; y seleccione * de "Tabla"; obtiene el resultado de dos tablas diferentes.
Estas son las dos formas de hacerlo:
SELECCIONE `from` FROM TableName
SELECT TableName.from FROM TableName
Su pregunta parece estar bien respondida aquí, pero solo quiero agregar un comentario más a este tema.
Aquellos que diseñan la base de datos deben conocer las palabras clave reservadas y evitar usarlas. Si descubre que alguien lo está usando, infórmele (de manera educada). La palabra clave aquí es palabra reservada .
Más información:
"Las palabras clave reservadas no deben usarse como nombres de objeto. Las bases de datos actualizadas de versiones anteriores de SQL Server pueden contener identificadores que incluyen palabras no reservadas en la versión anterior, pero que son palabras reservadas para la versión actual de SQL Server. Puede consultar el objeto utilizando identificadores delimitados hasta que se pueda cambiar el nombre ". http://msdn.microsoft.com/en-us/library/ms176027.aspx
y
"Si su base de datos contiene nombres que coinciden con palabras clave reservadas, debe usar identificadores delimitados cuando se refiera a esos objetos. Para obtener más información, consulte Identificadores (DMX)". http://msdn.microsoft.com/en-us/library/ms132178.aspx
Si está utilizando SQL Server, simplemente puede colocar los corchetes alrededor del nombre de la columna o tabla.
select [select]
from [table]
También me he enfrentado a este problema. Y la solución para esto es poner [Column_Name] como este en la consulta.
string query= "Select [Name],[Email] from Person";
Entonces funcionará perfectamente bien.
Hola, trabajo en sistemas Teradata que son completamente compatibles con ANSI. Use comillas dobles "" para nombrar tales columnas.
Por ejemplo, type
es una palabra clave reservada de SQL, y cuando se usa entre comillas, type
se trata como un nombre especificado por el usuario.
Vea el siguiente ejemplo 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
Puede poner el nombre de su columna entre paréntesis como:
Select [from] from < ur_tablename>
O
Poner en una tabla temporal y luego usar como quieras.
Ejemplo:
Declare @temp_table table(temp_from varchar(max))
Insert into @temp_table
Select * from your_tablename
Aquí solo asumo que your_tablename contiene solo una columna (es decir, from).
[from]
es la única columna que your_tablename
tiene.
"[Total]"
? ¿O tal vez hay una forma de escapar, algo así [\[Total\]]
?
Me encontré con el mismo problema al intentar actualizar una columna cuyo nombre era una palabra clave . La solución anterior no me ayudó. Lo resolví simplemente especificando el nombre de la tabla de esta manera:
UPDATE `survey`
SET survey.values='yes,no'
WHERE (question='Did you agree?')
Lo siguiente funcionará perfectamente:
SELECT DISTINCT table.from AS a FROM table
En MySQL, como alternativa al uso de comillas inversas (`), puede usar la interfaz de usuario para alterar los nombres de columna. Haga clic con el botón derecho en la tabla> Modificar tabla> Editar el nombre de columna que contiene la palabra clave sql> Confirmar.
select [from] from <table>
Como nota, lo anterior no funciona en MySQL
A juzgar por las respuestas aquí y mi propia experiencia. La única respuesta aceptable, si planea ser portátil, no use palabras clave SQL para la tabla, columna u otros nombres.
Todas estas respuestas funcionan en varias bases de datos, pero aparentemente muchas no son compatibles con la solución ANSI.
SELECT "from" FROM TableName
, agradable y portátil!