Se llama una de mis columnas from
. No puedo cambiar el nombre porque no lo hice. ¿Puedo hacer algo como SELECT from FROM TableName
o hay una sintaxis especial para evitar que se confunda SQL Server?
sql
sql-server
Nathan H
fuente
fuente
SELECT "from" FROM TableName
, agradable y portátil!Respuestas:
Envuelva el nombre de la columna entre paréntesis de esta manera, se
from
convierte en [desde].También es posible usar lo siguiente (útil cuando se consultan varias tablas):
fuente
select TableName.from from TableName;
PD: Funciona en MySQLSi hubiera estado en PostgreSQL, use comillas dobles alrededor del nombre, como:
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.
fuente
Mientras lo hace, alias como otra cosa (o mejor aún, use una vista o un SP y desaproveche el antiguo método de acceso directo).
fuente
Estas son las dos formas de hacerlo:
fuente
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:
y
fuente
Si está utilizando SQL Server, simplemente puede colocar los corchetes alrededor del nombre de la columna o tabla.
fuente
En Apache Drill, use comillas inversas:
fuente
También me he enfrentado a este problema. Y la solución para esto es poner [Column_Name] como este en la consulta.
Entonces funcionará perfectamente bien.
fuente
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:
fuente
Puede poner el nombre de su columna entre paréntesis como:
O
Poner en una tabla temporal y luego usar como quieras.
Ejemplo:
Aquí solo asumo que your_tablename contiene solo una columna (es decir, from).
fuente
[from]
es la única columna queyour_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:
fuente
Lo siguiente funcionará perfectamente:
fuente
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.
Como nota, lo anterior no funciona en MySQL
fuente
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.
fuente