복붙노트

[SQL] T-SQL - 앨리어싱 사용 "="대 "로"[폐쇄]

SQL

T-SQL - 앨리어싱 사용 "="대 "로"[폐쇄]

열 앨리어싱 때 AS = 앞서 사용하는 특정 이유 (그렇지 않으면 성능)이 있는가?

(가독성) 내 개인적인 취향이를 사용하는 것입니다 :

select
alias1     = somecolumn
alias2     = anothercolumn
from
tables
etc...

대신이의는 :

select
somecolumn as alias1
anothercolumn as alias2
from
tables
etc...

나는이 일을하지 말아야 어떤 이유에 나가 실종? 그것은 그들의 열을 서식에 올 때 다른 사람의 환경 설정은 무엇입니까?

해결법

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

    1.'='문제가있는 것, 그래서 다른 DBMS에서 응용 프로그램을 실행하고자한다 유효 ANSI SQL하지 않습니다.

    '='문제가있는 것, 그래서 다른 DBMS에서 응용 프로그램을 실행하고자한다 유효 ANSI SQL하지 않습니다.

    (ANSI 양식이 사용되지만 옵션 'AS'는 개인적으로 어려운 결과가 읽을 찾을 생략 때입니다.)

  2. ==============================

    2.일부 평형에 넣어하기 위해, 나는 =를 사용하여 선호합니다.

    일부 평형에 넣어하기 위해, 나는 =를 사용하여 선호합니다.

    나는 어떤 방법으로 쿼리 결과의 소비자 일 경우이보다 편리 나는 소비자가 사용할 수있는 어떤 열을 볼 찾을 수 있습니다.

    나는이 선호

    SELECT
          [ElementObligationID] = @MaxElementObligationID + eo.ElementObligationID
          , [ElementID] = eo.ElementID
          , [IsotopeID] = eo.IsotopeID
          , [ObligationID] = eo.ObligationID
          , [ElementWeight] = eo.ElementWeight * -1
          , [FissileWeight] = eo.FissileWeight * -1
          , [Items] = eo.Items * -1
          , [Comment] = eo.Comment
          , [AdditionalComment] = eo.AdditionalComment
          , [Aanmaak_userid] = @UserID
          , [Aanmaak_tijdstip] = GetDate()
          , [Laatste_wijziging_userid] = @UserID
          , [Laatste_wijziging_tijdstip] = GetDate()
    FROM  dbo.KTM_ElementObligation eo
          INNER JOIN dbo.KTM_ElementObligationArticle eoa ON 
              eoa.ElementObligationID = eo.ElementObligationID
    

    이 이상

    SELECT
          @MaxElementObligationID + eo.ElementObligationID AS [ElementObligationID]
          , eo.ElementID AS [ElementID]
          , eo.IsotopeID AS [IsotopeID]
          , eo.ObligationID AS [ObligationID]
          , eo.ElementWeight * -1 AS [ElementWeight]
          , eo.FissileWeight * -1 AS [FissileWeight]
          , eo.Items * -1 AS [Items]
          , eo.Comment AS [Comment]
          , eo.AdditionalComment AS [AdditionalComment]
          , @UserID AS [Aanmaak_userid]
          , GetDate() AS [Aanmaak_tijdstip]
          , @UserID AS [Laatste_wijziging_userid]
          , GetDate() AS [Laatste_wijziging_tijdstip]
    FROM  dbo.KTM_ElementObligation eo
          INNER JOIN dbo.KTM_ElementObligationArticle eoa ON 
              eoa.ElementObligationID = eo.ElementObligationID
    

    내 2C.

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

    3.나는 그것이 너무 많은 평등 동작처럼 보이는 단순히 그것을 사용하지 않을 것입니다. 'AS'는 나에게 모호한 아니다 분명 진대이다.

    나는 그것이 너무 많은 평등 동작처럼 보이는 단순히 그것을 사용하지 않을 것입니다. 'AS'는 나에게 모호한 아니다 분명 진대이다.

    그 같은 SQL에서 대문자를 사용하지 않는, 나는 그것을 열심히 읽고 찾을 수 있습니다.

  4. ==============================

    4."="모호한 그냥 일반입니다.

    "="모호한 그냥 일반입니다.

    각 SELECT 절을 깰 들여 쓰기를하면 ...

    select
        alias1     = somecolumn,
        alias2     = anothercolumn,
        result     = column1 * column2
    from
        table
    ....
    
    
    select
        somecolumn as          alias1,
        anothercolumn as       alias2,
        column1 * column2 as   result
    from
        tables
         ...
    
  5. ==============================

    5.내가 여기에 게시 한 다른만큼 운이 아니에요. 와 코드 I 작업은 일반적으로 다른 사람에 의해 쓰여진과는 T_SQL 스크립트의 여러 행에 걸쳐 스팬 단일 항목 원인 CASE 문이나 다른 계산, 회씩 연결 또는 로직이 아니라는 것을 드문된다.

    내가 여기에 게시 한 다른만큼 운이 아니에요. 와 코드 I 작업은 일반적으로 다른 사람에 의해 쓰여진과는 T_SQL 스크립트의 여러 행에 걸쳐 스팬 단일 항목 원인 CASE 문이나 다른 계산, 회씩 연결 또는 로직이 아니라는 것을 드문된다.

    대신 'AS'의 등호를 사용하여 읽기가 훨씬 쉽습니다. 등호로 당신은 당신이 찾고있는 별명 이름은 행의 첫 번째 위치에있는 것을 알고있다. 'AS'를 사용하고 T_SQL 스팬 여러 줄 때, 별명은 말 그대로 어느 곳이 될 수 있습니다.

    'AS'는 사용하는 경우보다 사용과 일치 한 때 멀리, 멀리, 쉽게 '항목'별칭을 찾을 수있다.

        SELECT
            ElementObligationID = @MaxElementObligationID + eo.ElementObligationID
          , ElementID = eo.ElementID
          , IsotopeID = eo.IsotopeID
          , ObligationID = eo.ObligationID
          , ElementWeight = eo.ElementWeight * -1
          , FissileWeight = eo.FissileWeight * -1
          , Items = CASE WHEN eo.Items < 0 THEN eo.Items * -1
                         WHEN eo.Items > 0 THEN eo.Items
                         ELSE 0 END
          , Comment = eo.Comment
          , AdditionalComment = eo.AdditionalComment
          , Aanmaak_userid = @UserID
          , Aanmaak_tijdstip = GetDate()
          , Laatste_wijziging_userid = @UserID
          , Laatste_wijziging_tijdstip = GetDate()
    FROM  dbo.KTM_ElementObligation eo
          INNER JOIN dbo.KTM_ElementObligationArticle eoa ON 
              eoa.ElementObligationID = eo.ElementObligationID
    

    이제 여기에 코드를 5 회 이상 양을 갖고, '항목'별칭을 찾을 필요 상상.

    SELECT
          @MaxElementObligationID + eo.ElementObligationID AS ElementObligationID
          , eo.ElementID AS ElementID
          , eo.IsotopeID AS IsotopeID
          , eo.ObligationID AS ObligationID
          , eo.ElementWeight * -1 AS ElementWeight
          , eo.FissileWeight * -1 AS FissileWeight
          , CASE WHEN eo.Items < 0 THEN eo.Items * -1
                 WHEN eo.Items > 0 THEN eo.Items
                 ELSE 0 END AS Items
          , eo.Comment AS Comment
          , eo.AdditionalComment AS AdditionalComment
          , @UserID AS Aanmaak_userid
          , GetDate() AS Aanmaak_tijdstip
          , @UserID AS Laatste_wijziging_userid
          , GetDate() AS Laatste_wijziging_tijdstip
    FROM  dbo.KTM_ElementObligation eo
          INNER JOIN dbo.KTM_ElementObligationArticle eoa ON 
              eoa.ElementObligationID = eo.ElementObligationID
    

    VS 'AS'는 '='변덕 임의 선호 아니다. 나는 그것이 내가 스크립트의 저자는 내가 자신의 별명에 등호를 사용하지 않은 유지를 담당 지금이기 때문에 찾고 있어요 별명 이름을 찾기 위해 몇 분 정도 걸릴 것입니다 시간이 있었다 말할 때 나는 과장하고 있지 않다. 나는 시간, 비용 및 지불에 비해 자원의 큰 낭비 생각할 수 없다 IT 전문 코드에서 별명을 확인합니다! 당신은 유지 보수성, 가독성 및 효율성에 대한 관심이 경우 옳고 그른 답이있다. 당신의 임무는 비즈니스 가치를 제공하는 것입니다, 왈도 찾고 하루를 보낼 수 없습니다!

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

    6.= 할당 및 평등과 혼동 될 수있다; 이 문자열 (공백 참여하고 보통 때)처럼 보이는 경우 사실, 내가 정말로 좋아한다 형태는 다음과 같습니다

    = 할당 및 평등과 혼동 될 수있다; 이 문자열 (공백 참여하고 보통 때)처럼 보이는 경우 사실, 내가 정말로 좋아한다 형태는 다음과 같습니다

    somecolumn as 'alias 1'
    

    또는

    'alias 1' = somecolumn
    

    나는 지금까지 다른 표기법을 선호한다 :

    somecolumn as [alias 1]
    
  7. ==============================

    7.(함께 또는 "AS")없이 후위 별명 형태 및 테이블 열 별칭 간의 일치한다. 개인적으로는 "있는 그대로"의 사용을 강제 할 수있는 옵션을하고 싶습니다, 그리고 당신은 상황이없는 것입니다 :

    (함께 또는 "AS")없이 후위 별명 형태 및 테이블 열 별칭 간의 일치한다. 개인적으로는 "있는 그대로"의 사용을 강제 할 수있는 옵션을하고 싶습니다, 그리고 당신은 상황이없는 것입니다 :

    select
        columnA,
        columnB
        columnC
    from
        table
    

    두 개의 열 대신 예상 3 결과 집합을 생성한다.

    또한 접두사 "="양식, 당신이 결과 세트 및 변수 할당을 취득 혼합하는 경우가 더 어려워 읽을 수 있도록 수 있다는 것을 말할 것입니다 :

    select
        cA = columnA,
        @cB = columnB,
        cC = columnC
    from
        table
    
  8. ==============================

    8.내가 별칭을 알고있는 세 가지 방법 :

    내가 별칭을 알고있는 세 가지 방법 :

    재 : 그것은 가장 자기 문서화 코드 (IMO)와 같이 1),이를 선호, 그리고 내가 별칭을 찾을 필요가있는 경우 나 AS를 검색 할 수 있습니다 ..

    재 : 2)이 내 두 번째 선택이지만, AS없이, 나는 결코 확실히 이것은 잘라 내기 및 붙여 넣기 오류 여부, 특히 긴에서, 심하게 형식의 쿼리 여부입니다.

    재 : 그것은 할당과 같은)가 있기 때문에 3), I는 다음과 같이하지 않으며, B)가 ON 절 및 CASE 문에 너무 많은 블렌드

    그래서, 내 투표는 별칭에 대한 AS 키워드를 사용하는 것입니다.

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

    9.나는 =이 곳 문에 사용되는 AS 때문에 사용하여 선호, 긴 쿼리에 혼동 될 수있다.

    나는 =이 곳 문에 사용되는 AS 때문에 사용하여 선호, 긴 쿼리에 혼동 될 수있다.

  10. ==============================

    10.나는 그 어느 쪽을 사용하여 선호합니다. 난 그냥 그 사이에 키워드없이 컬럼의 이름을

    나는 그 어느 쪽을 사용하여 선호합니다. 난 그냥 그 사이에 키워드없이 컬럼의 이름을

    SELECT MAX(price_column) maximumprice FROM prices
    
  11. ==============================

    11.열 별칭은 SQL 서버 2008에서 사용되지 않습니다 "="구문으로 선언하고 다음 버전에서 지원되지 않습니다. MSDN 문서를 참조하십시오.

    열 별칭은 SQL 서버 2008에서 사용되지 않습니다 "="구문으로 선언하고 다음 버전에서 지원되지 않습니다. MSDN 문서를 참조하십시오.

  12. ==============================

    12.내가 AS를 사용하기위한 환경 설정을 가지고 있지만, 여기에 정말 중요한 것은 기업 표준을 가지고 그것을 따르는 것입니다. 당신의 사람들이 더 많은 =보다 그대로 사용하는 경우, 모든 사람이 그것을 사용해야합니다. 코딩 표준은 쉽게 코드를 당신이 선택하지 특정 표준을 유지하기 위해 만드는 것입니다. 모든 사람이 같은 일을 사용하는 경우, 당신의 눈은을 따기에 사용됩니다.

    내가 AS를 사용하기위한 환경 설정을 가지고 있지만, 여기에 정말 중요한 것은 기업 표준을 가지고 그것을 따르는 것입니다. 당신의 사람들이 더 많은 =보다 그대로 사용하는 경우, 모든 사람이 그것을 사용해야합니다. 코딩 표준은 쉽게 코드를 당신이 선택하지 특정 표준을 유지하기 위해 만드는 것입니다. 모든 사람이 같은 일을 사용하는 경우, 당신의 눈은을 따기에 사용됩니다.

  13. ==============================

    13.나는 좋아

    나는 좋아

    SELECT
     column1 = table.column1
     ,column2 = table.colum2
    FROM table
    

    내가 그대로하지 쉽게 눈에 띄는 A = 기호에 비해 찾을 (내가 자리 = 빠른 AS 이상 가능)

    또한 때 단지 하나의 SELECT 열 별칭, 가끔은 사람이하는 어떤 알고 혼란 않습니다 :)

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

    14.당신도 사용할 필요가 없습니다

    당신도 사용할 필요가 없습니다

    는 AS 및 사용을 드롭

    SELECT originalname alias
    FROM
       tablename
    
  15. ==============================

    15.나는 여러 가지 관계형 데이터베이스 관리 시스템에 대한 SQL을 쓰기 때문에, 나는 일반적으로 ANSI 호환 SQL을 작성하는 것을 의미하는 그들 모두에 작동하는 구문을 사용하는 것을 선호합니다. 내 일반 서식을 기본 설정은 다음과 같습니다

    나는 여러 가지 관계형 데이터베이스 관리 시스템에 대한 SQL을 쓰기 때문에, 나는 일반적으로 ANSI 호환 SQL을 작성하는 것을 의미하는 그들 모두에 작동하는 구문을 사용하는 것을 선호합니다. 내 일반 서식을 기본 설정은 다음과 같습니다

    고르다     S.name AS 스키마 명,     O.name AS의 ObjectName,     C.column_id AS 해당 columnid,     C.name AS의 ColumnName 에서     sys.schemas S AS     INNER는 O = ON S.schema_id O.schema_id AS는 sys.objects 가입     INNER는 C = ON O.object_id C.object_id AS sys.columns 가입 주문     S.name의 ASC,     O.name의 ASC,     C.column_id의 ASC;

    대안은 위의 포맷으로, 다음은 쉽게 열 별명을 참조 할 수 있습니다 :

    고르다     S.name         AS 스키마 명,     O.name         AS의 ObjectName,     C.column_id         AS 해당 columnid,     C.name         AS의 ColumnName 에서     sys.schemas S AS     INNER는 O = ON S.schema_id O.schema_id AS는 sys.objects 가입     INNER는 C = ON O.object_id C.object_id AS sys.columns 가입 주문     S.name의 ASC,     O.name의 ASC,     C.column_id의 ASC;

  16. ==============================

    16.** 심지어 내가 '='대신 '으로'사용하여 선호. '='코드에 혼란을합니다.

    ** 심지어 내가 '='대신 '으로'사용하여 선호. '='코드에 혼란을합니다.

    예컨대 :

     column as alias1
    
  17. from https://stackoverflow.com/questions/1503295/t-sql-aliasing-using-versus-as by cc-by-sa and MIT license