programing

MySQL에서 필드 또는 열에 별칭을 붙이는 방법은 무엇입니까?

css3 2023. 10. 7. 12:07

MySQL에서 필드 또는 열에 별칭을 붙이는 방법은 무엇입니까?

저는 이런 일을 하려고 노력하고 있습니다.알 수 없는 열 오류가 발생합니다.

SELECT SUM(field1 + field2) AS col1, col1 + field3 AS col3 from core

기본적으로 앞서 수행한 작업을 수행할 필요가 없도록 별칭만 사용하고 싶습니다.이것이 mysql에서 가능합니까?

select @code:= SUM(field1 + field2), @code+1 from abc;

그러나 (MySQL 5.6 문서에서) 다음 사항에 유의하시기 바랍니다.

일반적으로 SET 문 이외의 경우 사용자 변수에 값을 할당하고 동일한 문 내의 값을 읽어서는 안 됩니다.예를 들어, 변수를 증가시키려면 다음과 같습니다.

SET @a = @a + 1;

SELECT와 같은 다른 문의 경우에는 기대하는 결과를 얻을 수 있지만 이는 보장되지 않습니다.다음 문장에서 MySQL이 @a를 먼저 평가하고 할당을 두 번째로 수행할 것이라고 생각할 수 있습니다.

SELECT @a, @a:=@a+1, ...;

그러나 사용자 변수가 포함된 식의 평가 순서는 정의되지 않았습니다.

따라서, 자신의 위험을 무릅쓰고 사용하세요.

다음과 같은 하위 쿼리 사용을 고려해 보십시오.

SELECT col1
,      col1 + field3 AS col3 
FROM   (
       SELECT  field1 + field2 as col1
       ,       field3
       from    core
       ) as SubQueryAlias

넌 할 수 있다.select별칭:

SELECT SUM(field1 + field2) AS col1, (select col1) + field3 AS col3 from core

이거 됩니다.

select @code:= SUM(field1 + field2), (@code*1) from abc;

@code*1 숫자 표현에 비밀리에 사용할 수 있으며 다음과 같은 모든 것을 사용할 수 있습니다.

select @code:= SUM(field1 + field2), (@code*1)+field3 from abc;

단답형은 아니오입니다.

mysql> select 1 as a, a + 1 as b;
ERROR 1054 (42S22): Unknown column 'a' in 'field list'

postgresql# select 1 as a, a + 1 as b;
ERROR:  column "a" does not exist

즉, 일부 SQL 구현에서는 다음과 같은 절별/그룹별 별칭을 사용할 수 있습니다.

postgresql# select 1 as a group by a; -- 1 row

집계 함수와 함께 사용하는 경우(그룹 기준), 그리고 사용할 수 없는 경우 계산된 열을 순방향 열 참조와 함께 사용할 수 없는 경우

SELECT FNC2(AF), FNC1(A) AS AF,  B, C,  FROM Table GROUP BY ...

1st one doesn't work due to forward column referencing. Do this instead 

SELECT FNC1(A) AS AF, B, C, FNC2((SELECT AF)) FROM Table GROUP BY ...

언급URL : https://stackoverflow.com/questions/6081436/how-to-alias-a-field-or-column-in-mysql