[sql] SQL 키워드처럼 보이는 SQL 열 이름을 처리하는 방법은 무엇입니까?

내 열 중 하나를이라고 from합니다. 이름을 만들지 않았기 때문에 이름을 변경할 수 없습니다. SELECT from FROM TableNameSQL Server와 혼동을 피하기 위해 비슷한 작업을 수행 하거나 특별한 구문이 있습니까?



답변

열 이름을 괄호로 묶으면 from[from]이됩니다.

select [from] from table;

다음을 사용할 수도 있습니다 (여러 테이블을 쿼리 할 때 유용함).

select table.[from] from table;


답변

PostgreSQL에 있었던 경우 이름과 같이 큰 따옴표를 사용하십시오.

select "from" from "table";

참고 : 내부적으로 PostgreSQL은 인용되지 않은 모든 명령과 매개 변수를 자동으로 소문자로 변환합니다. 명령과 식별자는 대소 문자를 구분하지 않습니다. 간단한 * from tAblE; 테이블에서 select * 로 해석됩니다 . . 그러나 큰 따옴표 안에있는 매개 변수는 그대로 사용되므로 대소 문자를 구분합니다. select * from “table”; 그리고 “표”SELECT * FROM; 두 개의 다른 테이블에서 결과를 가져옵니다.


답변

당신이하고있는 동안-다른 것으로 별칭을 지정하십시오 (또는 더 나은 방법으로보기 나 SP를 사용하고 이전 직접 액세스 방법을 사용하지 마십시오).

SELECT [from] AS TransferFrom -- Or something else more suitable
FROM TableName


답변

다음 두 가지 방법이 있습니다.

  1. 여기에 인용 부호를 사용하십시오.

FROM TableName에서`from` 선택

  1. 테이블 이름을 다음과 같이 언급 할 수 있습니다.

SELECT TableName.from FROM TableName


답변

귀하의 질문에 대한 답변이 여기에있는 것 같지만이 주제에 대한 의견을 하나 더 추가하고 싶습니다.

데이터베이스를 설계하는 사람은 예약 키워드를 잘 알고 사용하지 않아야합니다. 그것을 사용하는 사람을 발견하면, 정중 한 방법으로 알려주십시오. 여기서 키워드는 예약어 입니다.

추가 정보:

“예약 된 키워드는 개체 이름으로 사용해서는 안됩니다. 이전 버전의 SQL Server에서 업그레이드 된 데이터베이스에는 이전 버전에서는 예약되지 않은 단어는 포함하지만 현재 버전의 SQL Server에는 예약 된 단어가 포함 된 식별자가 포함될 수 있습니다. 이름을 변경할 수있을 때까지 구분 된 식별자를 사용하여 개체를 제거하십시오. ”
http://msdn.microsoft.com/en-us/library/ms176027.aspx

“데이터베이스에 예약 키워드와 일치하는 이름이 포함 된 경우 해당 오브젝트를 참조 할 때 구분 식별자를 사용해야합니다. 자세한 정보는 식별자 (DMX)를 참조하십시오.”
http://msdn.microsoft.com/en-us/library/ms132178.aspx


답변

SQL Server를 사용하는 경우 열 또는 테이블 이름을 대괄호로 묶기 만하면됩니다.

select [select]
from [table]


답변

Apache Drill에서 역 따옴표를 사용하십시오.

select `from` from table;