복붙노트

[SQL] 어떻게 SQL 열 이름을 처리하는 것을 SQL 키워드처럼?

SQL

어떻게 SQL 열 이름을 처리하는 것을 SQL 키워드처럼?

내 열 중 하나에서 호출됩니다. 나는 그것을하지 않았기 때문에 나는 이름을 변경할 수 없습니다. 오전 나는 TABLENAME FROM에서 SELECT 같은 일을 할 수 또는 혼동되는 SQL Server를 방지하기 위해 특수 구문이있다?

해결법

  1. ==============================

    1.[]와해진다에서과 같이 괄호로 열 이름을 감싸.

    []와해진다에서과 같이 괄호로 열 이름을 감싸.

    select [from] from table;
    

    (여러 테이블을 조회 할 때 유용) 다음을 사용하는 것도 가능합니다 :

    select table.[from] from table;
    
  2. ==============================

    2.이 PostgreSQL을에 있었다면, 같은 이름, 큰 따옴표를 사용합니다 :

    이 PostgreSQL을에 있었다면, 같은 이름, 큰 따옴표를 사용합니다 :

    select "from" from "table";
    

    참고 : 내부적으로 PostgreSQL을 자동으로 소문자로 모든 인용 부호로 둘러싸이지 않은 명령과 매개 변수를 변환합니다. 즉 명령과 식별자는 대소 문자를 구분하지 않습니다하는 효과가 있습니다. * 테이블을 선택; 테이블 선택 * 해석;입니다 그러나, 큰 따옴표 안에 매개 변수를 그대로 사용, 따라서 대소 문자를 구분합니다 : "테이블"에서 선택 *; 그리고 "표"SELECT * FROM; 두 개의 서로 다른 테이블에서 결과를 가져옵니다.

  3. ==============================

    3.당신이 그 일을하는 동안 - 별칭을 다른 무언가로 (또는 더 나은 아직, 뷰 또는 SP를 사용하여 기존의 직접 액세스 방법을 더 이상 사용).

    당신이 그 일을하는 동안 - 별칭을 다른 무언가로 (또는 더 나은 아직, 뷰 또는 SP를 사용하여 기존의 직접 액세스 방법을 더 이상 사용).

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

    4.이 그것을 할 수있는 두 가지 방법이 있습니다 :

    이 그것을 할 수있는 두 가지 방법이 있습니다 :

  5. ==============================

    5.귀하의 질문 잘 답이 여기에있는 것 같다,하지만 난 그냥이 주제에 한 번 더 설명을 추가하고 싶습니다.

    귀하의 질문 잘 답이 여기에있는 것 같다,하지만 난 그냥이 주제에 한 번 더 설명을 추가하고 싶습니다.

    데이터베이스를 설계하는 사람들은 예약 된 키워드를 잘 인식하고이를 사용하지 않아야합니다. 당신이 그것을 사용하는 사람을 발견 한 경우, (정중 한 방식으로) 그것에 대해를 알려줍니다. 여기서 키워드는 예약어입니다.

    추가 정보:

  6. ==============================

    6.당신은 SQL 서버를 사용하는 경우, 당신은 단지 열 또는 테이블 이름 주위에 대괄호를 포장 할 수 있습니다.

    당신은 SQL 서버를 사용하는 경우, 당신은 단지 열 또는 테이블 이름 주위에 대괄호를 포장 할 수 있습니다.

    select [select]
    from [table]
    
  7. ==============================

    7.아파치 드릴에서는 역 인용 부호를 사용합니다 :

    아파치 드릴에서는 역 인용 부호를 사용합니다 :

    select `from` from table;
    
  8. ==============================

    8.나는 또한이 문제에 직면했다. 그리고 이것에 대한 해결책은 쿼리에서 다음과 같이 [COLUMN_NAME]를 넣어하는 것입니다.

    나는 또한이 문제에 직면했다. 그리고 이것에 대한 해결책은 쿼리에서 다음과 같이 [COLUMN_NAME]를 넣어하는 것입니다.

    string query= "Select [Name],[Email] from Person";
    

    그래서 완벽하게 작동합니다.

  9. ==============================

    9.완전히 ANSI의 준수 테라 데이타 시스템의 안녕 작동합니다. 같은 열 이름을 "따옴표"를 사용합니다.

    완전히 ANSI의 준수 테라 데이타 시스템의 안녕 작동합니다. 같은 열 이름을 "따옴표"를 사용합니다.

    예를 들면 형식은 SQL 예약 키워드이며, 따옴표를 사용하는 경우, 유형은 사용자가 지정한 이름으로 처리됩니다.

    코드 예제 아래를 참조하십시오 :

    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
    
  10. ==============================

    10.당신은 같은 브라켓에 열 이름을 넣을 수 있습니다 :

    당신은 같은 브라켓에 열 이름을 넣을 수 있습니다 :

    Select  [from] from < ur_tablename>
    

    또는

    당신이 원하는대로 다음 사용 임시 테이블에 넣습니다. 예:

    Declare @temp_table table(temp_from varchar(max))
    
    Insert into @temp_table
    Select * from your_tablename
    

    저는 여기에 (즉)에서 your_tablename 단 하나의 열이 포함되어 있다고 가정 그냥.

  11. ==============================

    11.이름이 키워드였다 열을 업데이트 할 때 나는 같은 문제에 달렸다. 이 솔루션은 위의 나에게 도움이되지 않았다. 단순히 같은 테이블의 이름을 지정하여 그것을 해결 :

    이름이 키워드였다 열을 업데이트 할 때 나는 같은 문제에 달렸다. 이 솔루션은 위의 나에게 도움이되지 않았다. 단순히 같은 테이블의 이름을 지정하여 그것을 해결 :

    UPDATE `survey`
    SET survey.values='yes,no'
    WHERE (question='Did you agree?')
    
  12. ==============================

    12.다음은 완벽하게 작동합니다 :

    다음은 완벽하게 작동합니다 :

    SELECT DISTINCT table.from AS a FROM table
    
  13. ==============================

    13.MySQL의에서, 대안 적 (`) 다시 따옴표를 사용하여, 당신은 ALTER 열 이름에 UI를 사용할 수 있습니다. 오른쪽 SQL 키워드> 커밋 포함> 알터 테이블> 편집 열 이름 테이블을 클릭합니다.

    MySQL의에서, 대안 적 (`) 다시 따옴표를 사용하여, 당신은 ALTER 열 이름에 UI를 사용할 수 있습니다. 오른쪽 SQL 키워드> 커밋 포함> 알터 테이블> 편집 열 이름 테이블을 클릭합니다.

    select [from] from <table>
    

    참고로, 위의 MySQL의에서 작동하지 않습니다

  14. ==============================

    14.여기에 대한 답변과 내 자신의 경험에서 판단. 유일하게 허용 대답 휴대용 테이블, 열 또는 다른 이름을 SQL 키워드를 사용하지 않는 것에, 당신이 경우에있는 거 계획.

    여기에 대한 답변과 내 자신의 경험에서 판단. 유일하게 허용 대답 휴대용 테이블, 열 또는 다른 이름을 SQL 키워드를 사용하지 않는 것에, 당신이 경우에있는 거 계획.

    이 모든 답은 다양한 데이터베이스에서 작동하지만 분명히 많은은 ANSI 솔루션을 지원하지 않습니다.

  15. from https://stackoverflow.com/questions/285775/how-to-deal-with-sql-column-names-that-look-like-sql-keywords by cc-by-sa and MIT license