Antworten:
Schließen Sie den Spaltennamen wie folgt in Klammern ein und from
wird zu [von].
select [from] from table;
Es ist auch möglich, Folgendes zu verwenden (nützlich beim Abfragen mehrerer Tabellen):
select table.[from] from table;
select TableName.from from TableName;
PS: Es funktioniert in MySQL
Wenn es in PostgreSQL war, verwenden Sie doppelte Anführungszeichen um den Namen, wie:
select "from" from "table";
Hinweis: Intern konvertiert PostgreSQL automatisch alle nicht zitierten Befehle und Parameter in Kleinbuchstaben. Dies hat zur Folge, dass Befehle und Bezeichner nicht zwischen Groß- und Kleinschreibung unterscheiden. sEleCt * von tAblE; wird als select * from table interpretiert ; . Parameter in doppelten Anführungszeichen werden jedoch unverändert verwendet und unterscheiden daher zwischen Groß- und Kleinschreibung: Wählen Sie * aus "Tabelle" aus. und wählen Sie * aus "Tabelle"; Ruft das Ergebnis aus zwei verschiedenen Tabellen ab.
Dies sind die beiden Möglichkeiten:
SELECT `from` FROM TableName
SELECT TableName.from FROM TableName
Ihre Frage scheint hier gut beantwortet zu sein, aber ich möchte diesem Thema nur noch einen Kommentar hinzufügen.
Diejenigen, die die Datenbank entwerfen, sollten die reservierten Schlüsselwörter gut kennen und deren Verwendung vermeiden. Wenn Sie jemanden entdecken, der es benutzt, informieren Sie ihn darüber (auf höfliche Weise). Das Schlüsselwort hier ist reserviertes Wort.
Mehr Informationen:
"Reservierte Schlüsselwörter sollten nicht als Objektnamen verwendet werden. Datenbanken, die von früheren Versionen von SQL Server aktualisiert wurden, enthalten möglicherweise Bezeichner, die Wörter enthalten, die in der früheren Version nicht reserviert waren, die jedoch für die aktuelle Version von SQL Server reserviert sind Objekt durch begrenzte Trennzeichen, bis der Name geändert werden kann. " http://msdn.microsoft.com/en-us/library/ms176027.aspx
und
"Wenn Ihre Datenbank Namen enthält, die mit reservierten Schlüsselwörtern übereinstimmen, müssen Sie begrenzte Bezeichner verwenden, wenn Sie auf diese Objekte verweisen. Weitere Informationen finden Sie unter Bezeichner (DMX)." http://msdn.microsoft.com/en-us/library/ms132178.aspx
Wenn Sie SQL Server verwenden, können Sie einfach die eckigen Klammern um den Spalten- oder Tabellennamen setzen.
select [select]
from [table]
Ich habe mich auch diesem Problem gestellt. Die Lösung hierfür besteht darin, [Column_Name] wie folgt in die Abfrage einzufügen.
string query= "Select [Name],[Email] from Person";
Es wird also perfekt funktionieren.
Hallo, ich arbeite an Teradata-Systemen, die vollständig ANSI-kompatibel sind. Verwenden Sie doppelte Anführungszeichen, um solche Spalten zu benennen.
ZB type
ist ein reserviertes SQL-Schlüsselwort und wird bei Verwendung in Anführungszeichen type
als benutzerdefinierter Name behandelt.
Siehe untenstehendes Codebeispiel:
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
Sie können Ihren Spaltennamen wie folgt in Klammern setzen:
Select [from] from < ur_tablename>
Oder
Legen Sie eine temporäre Tabelle ein und verwenden Sie sie nach Belieben.
Beispiel:
Declare @temp_table table(temp_from varchar(max))
Insert into @temp_table
Select * from your_tablename
Hier gehe ich einfach davon aus, dass Ihr Tabellenname nur eine Spalte enthält (dh von).
[from]
die einzige Spalte ist, die es your_tablename
gibt.
"[Total]"
? Oder gibt es vielleicht einen Weg, dem zu entkommen [\[Total\]]
?
Ich habe das gleiche Problem ausgeführt, als ich versucht habe, eine Spalte zu aktualisieren , deren Name ein Schlüsselwort war . Die obige Lösung hat mir nicht geholfen. Ich habe es gelöst, indem ich einfach den Namen der Tabelle wie folgt angegeben habe:
UPDATE `survey`
SET survey.values='yes,no'
WHERE (question='Did you agree?')
Folgendes wird perfekt funktionieren:
SELECT DISTINCT table.from AS a FROM table
In MySQL können Sie alternativ zur Verwendung von Anführungszeichen (`) die Benutzeroberfläche verwenden, um Spaltennamen zu ändern. Klicken Sie mit der rechten Maustaste auf die Tabelle> Tabelle ändern> Bearbeiten Sie den Spaltennamen, der das Schlüsselwort sql enthält> Festschreiben.
select [from] from <table>
Hinweis: Das oben Genannte funktioniert in MySQL nicht
Nach den Antworten hier und meiner eigenen Erfahrung zu urteilen. Die einzig akzeptable Antwort, wenn Sie vorhaben, portabel zu sein, besteht darin, keine SQL-Schlüsselwörter für Tabellen-, Spalten- oder andere Namen zu verwenden.
Alle diese Antworten funktionieren in den verschiedenen Datenbanken, aber anscheinend unterstützen viele die ANSI-Lösung nicht.
SELECT "from" FROM TableName
, schön und tragbar!