Réponses:
Enveloppez le nom de la colonne entre crochets comme ceci, from
devient [de].
select [from] from table;
Il est également possible d'utiliser les éléments suivants (utiles lors de l'interrogation de plusieurs tables):
select table.[from] from table;
select TableName.from from TableName;
PS: Cela fonctionne dans MySQL
S'il avait été dans PostgreSQL, utilisez des guillemets doubles autour du nom, comme:
select "from" from "table";
Remarque: en interne, PostgreSQL convertit automatiquement toutes les commandes et paramètres non cotés en minuscules. Cela a pour effet que les commandes et les identificateurs ne sont pas sensibles à la casse. sEleCt * de la table; est interprété comme select * from table; . Cependant, les paramètres entre guillemets doubles sont utilisés tels quels et sont donc sensibles à la casse: sélectionnez * dans "table"; et sélectionnez * dans "Table"; obtient le résultat de deux tables différentes.
Ce sont les deux façons de le faire:
SELECT `from` FROM TableName
SELECT TableName.from FROM TableName
Votre question semble être bien répondue ici, mais je veux juste ajouter un commentaire de plus à ce sujet.
Les concepteurs de la base de données doivent bien connaître les mots clés réservés et éviter de les utiliser. Si vous découvrez que quelqu'un l'utilise, informez-le (d'une manière polie). Le mot-clé ici est réservé mot .
Plus d'information:
"Les mots clés réservés ne doivent pas être utilisés comme noms d'objet. Les bases de données mises à niveau à partir de versions antérieures de SQL Server peuvent contenir des identificateurs qui incluent des mots non réservés dans la version antérieure, mais qui sont des mots réservés pour la version actuelle de SQL Server. Vous pouvez vous référer à la en utilisant des identificateurs délimités jusqu'à ce que le nom puisse être modifié. " http://msdn.microsoft.com/en-us/library/ms176027.aspx
et
"Si votre base de données contient des noms qui correspondent à des mots clés réservés, vous devez utiliser des identificateurs délimités lorsque vous faites référence à ces objets. Pour plus d'informations, consultez Identificateurs (DMX)." http://msdn.microsoft.com/en-us/library/ms132178.aspx
Si vous utilisez SQL Server, vous pouvez simplement envelopper les crochets autour du nom de la colonne ou de la table.
select [select]
from [table]
J'ai également fait face à ce problème. Et la solution pour cela est de mettre [Column_Name] comme ceci dans la requête.
string query= "Select [Name],[Email] from Person";
Cela fonctionnera donc parfaitement bien.
Salut, je travaille sur des systèmes Teradata qui sont entièrement conformes à la norme ANSI. Utilisez des guillemets doubles "" pour nommer ces colonnes.
Par exemple, type
est un mot clé réservé SQL, et lorsqu'il est utilisé entre guillemets,type
est traité comme un nom spécifié par l'utilisateur.
Voir l'exemple de code ci-dessous:
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
Vous pouvez mettre le nom de votre colonne entre parenthèses comme:
Select [from] from < ur_tablename>
Ou
Mettez dans une table temporaire puis utilisez comme vous le souhaitez.
Exemple:
Declare @temp_table table(temp_from varchar(max))
Insert into @temp_table
Select * from your_tablename
Ici, je suppose simplement que your_tablename ne contient qu'une seule colonne (c'est-à-dire de).
[from]
c'est la seule colonne qui your_tablename
a.
"[Total]"
? Ou peut-être existe-t-il un moyen de lui échapper, quelque chose comme ça [\[Total\]]
?
J'ai rencontré le même problème en essayant de mettre à jour une colonne dont le nom était un mot - clé . La solution ci-dessus ne m'a pas aidé. Je l'ai résolu en spécifiant simplement le nom de la table comme ceci:
UPDATE `survey`
SET survey.values='yes,no'
WHERE (question='Did you agree?')
Les éléments suivants fonctionneront parfaitement:
SELECT DISTINCT table.from AS a FROM table
Dans MySQL, alternativement à l'utilisation de guillemets (`), vous pouvez utiliser l'interface utilisateur pour modifier les noms des colonnes. Cliquez avec le bouton droit sur le tableau> Modifier le tableau> Modifier le nom de la colonne qui contient le mot clé sql> Valider.
select [from] from <table>
Notez que ce qui précède ne fonctionne pas dans MySQL
A en juger par les réponses ici et ma propre expérience. La seule réponse acceptable, si vous prévoyez d'être portable est de ne pas utiliser de mots clés SQL pour les noms de table, de colonne ou autres.
Toutes ces réponses fonctionnent dans les différentes bases de données mais apparemment, beaucoup ne prennent pas en charge la solution ANSI.
SELECT "from" FROM TableName
, agréable et portable!