Câu trả lời:
Bọc tên cột trong ngoặc như vậy, from
trở thành [từ].
select [from] from table;
Cũng có thể sử dụng như sau (hữu ích khi truy vấn nhiều bảng):
select table.[from] from table;
select TableName.from from TableName;
PS: Nó hoạt động trong MySQL
Nếu nó đã có trong PostgreSQL, hãy sử dụng dấu ngoặc kép quanh tên, như:
select "from" from "table";
Lưu ý: Nội bộ PostgreSQL tự động chuyển đổi tất cả các lệnh và tham số không được trích dẫn thành chữ thường. Điều đó có tác dụng là các lệnh và mã định danh không phân biệt chữ hoa chữ thường. sEleCt * từ tAblE; được hiểu là select * từ bảng; . Tuy nhiên, các tham số bên trong dấu ngoặc kép được sử dụng nguyên trạng và do đó có phân biệt chữ hoa chữ thường: select * từ "bảng"; và chọn * từ "Bảng"; nhận được kết quả từ hai bảng khác nhau.
Đây là hai cách để làm điều đó:
CHỌN `từ` TỪ Tên bảng
SELECT TableName.from FROM TableName
Câu hỏi của bạn dường như được trả lời tốt ở đây, nhưng tôi chỉ muốn thêm một bình luận cho chủ đề này.
Những người thiết kế cơ sở dữ liệu nên nhận thức rõ các từ khóa dành riêng và tránh sử dụng chúng. Nếu bạn phát hiện ra ai đó sử dụng nó, hãy thông báo cho họ về điều đó (một cách lịch sự). Các từ khóa ở đây là từ dành riêng .
Thêm thông tin:
"Không nên sử dụng từ khóa dành riêng làm tên đối tượng. Cơ sở dữ liệu được nâng cấp từ các phiên bản SQL Server trước đó có thể chứa các định danh bao gồm các từ không dành riêng trong phiên bản trước, nhưng đó là các từ dành riêng cho phiên bản SQL Server hiện tại. Bạn có thể tham khảo đối tượng bằng cách sử dụng các định danh phân cách cho đến khi tên có thể được thay đổi. " http://msdn.microsoft.com/en-us/l Library / ms176027.aspx
và
"Nếu cơ sở dữ liệu của bạn có chứa các tên khớp với các từ khóa dành riêng, bạn phải sử dụng các định danh được phân tách khi bạn tham chiếu đến các đối tượng đó. Để biết thêm thông tin, hãy xem Mã định danh (DMX)." http://msdn.microsoft.com/en-us/l Library / ms132178.aspx
Nếu bạn đang sử dụng SQL Server, bạn chỉ cần bọc dấu ngoặc vuông quanh cột hoặc tên bảng.
select [select]
from [table]
Tôi cũng đã phải đối mặt với vấn đề này. Và giải pháp cho việc này là đặt [Cột_Name] như thế này trong truy vấn.
string query= "Select [Name],[Email] from Person";
Vì vậy, nó sẽ hoạt động hoàn toàn tốt.
Xin chào Tôi làm việc trên các hệ thống Teradata hoàn toàn tuân thủ ANSI. Sử dụng dấu ngoặc kép "" để đặt tên cho các cột như vậy.
Ví dụ: type
một từ khóa dành riêng SQL và khi được sử dụng trong dấu ngoặc kép, type
được coi là tên do người dùng chỉ định.
Xem ví dụ mã dưới đây:
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
Bạn có thể đặt tên cột của bạn trong ngoặc như:
Select [from] from < ur_tablename>
Hoặc là
Đặt trong một bảng tạm thời sau đó sử dụng như bạn muốn.
Thí dụ:
Declare @temp_table table(temp_from varchar(max))
Insert into @temp_table
Select * from your_tablename
Ở đây tôi chỉ giả sử rằng your_tablename chỉ chứa một cột (tức là từ).
[from]
là cột duy nhất your_tablename
đã có.
"[Total]"
? Hoặc có thể có một cách để thoát khỏi nó, một cái gì đó như thế [\[Total\]]
nào?
Tôi đã chạy trong cùng một vấn đề khi cố gắng cập nhật một cột có tên là một từ khóa . Giải pháp trên không giúp tôi được gì. Tôi đã giải quyết nó bằng cách chỉ định tên của bảng như thế này:
UPDATE `survey`
SET survey.values='yes,no'
WHERE (question='Did you agree?')
Sau đây sẽ hoạt động hoàn hảo:
SELECT DISTINCT table.from AS a FROM table
Đánh giá từ các câu trả lời ở đây và kinh nghiệm của riêng tôi. Câu trả lời duy nhất có thể chấp nhận được, nếu bạn dự định di động là không sử dụng từ khóa SQL cho bảng, cột hoặc tên khác.
Tất cả các câu trả lời này hoạt động trong các cơ sở dữ liệu khác nhau nhưng dường như rất nhiều không hỗ trợ giải pháp ANSI.
SELECT "from" FROM TableName
, tốt đẹp và di động!