Risposte:
Avvolgi il nome della colonna tra parentesi in questo modo, from
diventa [da].
select [from] from table;
È anche possibile utilizzare quanto segue (utile durante l'interrogazione di più tabelle):
select table.[from] from table;
select TableName.from from TableName;
PS: funziona in MySQL
Se fosse stato in PostgreSQL, usa le doppie virgolette attorno al nome, come:
select "from" from "table";
Nota: PostgreSQL internamente converte automaticamente tutti i comandi e i parametri non quotati in minuscolo. Ciò ha l'effetto che i comandi e gli identificatori non fanno distinzione tra maiuscole e minuscole. serie * da tAblE; viene interpretato come seleziona * dalla tabella; . Tuttavia, i parametri tra virgolette doppie vengono utilizzati così come sono, e quindi SONO case sensitive: selezionare * da "tabella"; e seleziona * da "Tabella"; ottiene il risultato da due diverse tabelle.
Questi sono i due modi per farlo:
SELEZIONA `from` FROM TableName
SELECT TableName.from FROM TableName
La tua domanda sembra avere una risposta corretta qui, ma voglio solo aggiungere un altro commento a questo argomento.
Chi progetta il database dovrebbe essere ben consapevole delle parole chiave riservate ed evitare di usarle. Se scopri qualcuno che lo utilizza, informalo (in modo educato). La parola chiave qui è parola riservata .
Maggiori informazioni:
"Le parole chiave riservate non devono essere utilizzate come nomi di oggetti. I database aggiornati da versioni precedenti di SQL Server possono contenere identificatori che includono parole non riservate nella versione precedente, ma che sono parole riservate per la versione corrente di SQL Server. È possibile fare riferimento a oggetto utilizzando identificatori delimitati fino a quando il nome non può essere modificato. " http://msdn.microsoft.com/en-us/library/ms176027.aspx
e
"Se il database contiene nomi che corrispondono a parole chiave riservate, è necessario utilizzare identificatori delimitati quando si fa riferimento a tali oggetti. Per ulteriori informazioni, consultare Identificatori (DMX)." http://msdn.microsoft.com/en-us/library/ms132178.aspx
Se stai usando SQL Server, puoi semplicemente avvolgere le parentesi quadre attorno alla colonna o al nome della tabella.
select [select]
from [table]
Ho anche affrontato questo problema. E la soluzione per questo è inserire [Column_Name] in questo modo nella query.
string query= "Select [Name],[Email] from Person";
Quindi funzionerà perfettamente.
Ciao, lavoro su sistemi Teradata completamente conformi ANSI. Usa le virgolette doppie "" per nominare tali colonne.
Ad esempio, type
è una parola chiave riservata SQL e, se utilizzata tra virgolette, type
viene trattata come un nome specificato dall'utente.
Vedi sotto esempio di codice:
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
Puoi inserire il nome della colonna tra parentesi come:
Select [from] from < ur_tablename>
O
Metti in una tabella temprary quindi usa come preferisci.
Esempio:
Declare @temp_table table(temp_from varchar(max))
Insert into @temp_table
Select * from your_tablename
Qui presumo solo che your_tablename contenga solo una colonna (ovvero da).
[from]
sia l'unica colonna che your_tablename
ha.
"[Total]"
? O forse c'è un modo per evitarlo, qualcosa del genere [\[Total\]]
?
Ho riscontrato lo stesso problema durante il tentativo di aggiornare una colonna il cui nome era una parola chiave . La soluzione sopra non mi ha aiutato. L'ho risolto semplicemente specificando il nome della tabella in questo modo:
UPDATE `survey`
SET survey.values='yes,no'
WHERE (question='Did you agree?')
Di seguito funzionerà perfettamente:
SELECT DISTINCT table.from AS a FROM table
In MySQL, in alternativa all'utilizzo di virgolette (`), è possibile utilizzare l'interfaccia utente per modificare i nomi delle colonne. Fare clic con il tasto destro del mouse sulla tabella> Modifica tabella> Modifica il nome della colonna che contiene la parola chiave sql> Commit.
select [from] from <table>
Come nota, quanto sopra non funziona in MySQL
A giudicare dalle risposte qui e dalla mia esperienza. L'unica risposta accettabile, se stai pianificando di essere portatile, non utilizzare parole chiave SQL per tabella, colonna o altri nomi.
Tutte queste risposte funzionano nei vari database ma apparentemente molto non supportano la soluzione ANSI.
SELECT "from" FROM TableName
, bello e portatile!