Jedna z moich kolumn nazywa się from
. Nie mogę zmienić nazwy, ponieważ tego nie zrobiłem. Czy mogę robić coś takiego, SELECT from FROM TableName
czy istnieje specjalna składnia, aby uniknąć pomyłki w SQL Server?
sql
sql-server
Nathan H.
źródło
źródło
SELECT "from" FROM TableName
, miło i przenośnie!Odpowiedzi:
Zawiń nazwę kolumny w nawiasy kwadratowe tak,
from
staje się [z]Możliwe jest również użycie następujących (przydatne przy zapytaniach do wielu tabel):
źródło
select TableName.from from TableName;
PS: Działa w MySQLJeśli był w PostgreSQL, użyj podwójnych cudzysłowów wokół nazwy, takich jak:
Uwaga: wewnętrznie PostgreSQL automatycznie konwertuje wszystkie niecytowane polecenia i parametry na małe litery. Powoduje to, że polecenia i identyfikatory nie rozróżniają wielkości liter. WYBÓR * z tabeli; jest interpretowany jako select * z tabeli; . Jednak parametry wewnątrz podwójnych cudzysłowów są używane tak, jak są, i dlatego JEST rozróżniana wielkość liter: wybierz * z „tabeli”; i wybierz * z „Tabeli”; pobiera wynik z dwóch różnych tabel.
źródło
Podczas gdy to robisz - alias to coś innego (lub jeszcze lepiej, użyj widoku lub SP i przestań używać starej metody bezpośredniego dostępu).
źródło
Są dwa sposoby, aby to zrobić:
źródło
Odpowiedź na twoje pytanie wydaje się być tutaj dobrze udzielona, ale chcę dodać jeszcze jeden komentarz do tego tematu.
Osoby projektujące bazę danych powinny mieć świadomość zarezerwowanych słów kluczowych i unikać ich używania. Jeśli odkryjesz, że ktoś go używa, poinformuj go o tym (uprzejmie). Słowo kluczowe jest tutaj słowem zastrzeżonym .
Więcej informacji:
i
źródło
Jeśli korzystasz z programu SQL Server, możesz po prostu owinąć nawiasy kwadratowe wokół nazwy kolumny lub tabeli.
źródło
W Apache Drill użyj cudzysłowów:
źródło
Zmierzyłem się również z tym problemem. Rozwiązaniem tego jest umieszczenie w zapytaniu [nazwa_kolumny] w ten sposób.
Więc będzie działać idealnie dobrze.
źródło
Cześć. Pracuję na systemach Teradata, które są całkowicie zgodne z ANSI. Użyj podwójnych cudzysłowów „”, aby nazwać takie kolumny.
Np.
type
Jest słowem kluczowym zastrzeżonym SQL, a używane w cudzysłowietype
jest traktowane jako nazwa określona przez użytkownika.Zobacz poniższy przykład kodu:
źródło
Możesz umieścić nazwę kolumny w nawiasie, np .:
Lub
Umieść tabelę tymczasową, a następnie używaj, jak chcesz.
Przykład:
Tutaj zakładam, że twoja_nazwa_tablicy zawiera tylko jedną kolumnę (tj. Z).
źródło
[from]
jest to jedyna kolumna, którayour_tablename
ma."[Total]"
? A może jest jakiś sposób na ucieczkę[\[Total\]]
?Wystąpił ten sam problem podczas próby aktualizacji kolumny, której nazwa była słowem kluczowym . Powyższe rozwiązanie nie pomogło mi. Rozwiązałem to, podając po prostu nazwę tabeli w następujący sposób:
źródło
Następujące będą działać idealnie:
źródło
W MySQL zamiast alternatywnych cudzysłowów (`) można użyć interfejsu użytkownika do zmiany nazw kolumn. Kliknij prawym przyciskiem myszy tabelę> Zmień tabelę> Edytuj nazwę kolumny zawierającą słowo kluczowe sql> Zatwierdź.
Uwaga: powyższe nie działa w MySQL
źródło
Sądząc po odpowiedziach tutaj i moim własnym doświadczeniu. Jedyną akceptowalną odpowiedzią, jeśli planujesz być przenośny, nie używaj słów kluczowych SQL dla nazw tabel, kolumn lub innych nazw.
Wszystkie te odpowiedzi działają w różnych bazach danych, ale najwyraźniej wiele nie obsługuje rozwiązania ANSI.
źródło