programing

MySQL에서 병합 사용 방법

powerit 2023. 7. 27. 22:27
반응형

MySQL에서 병합 사용 방법

여기 좀 도와주세요.MySQL에서 이 병합을 사용하는 방법을 정말 이해할 수 없습니다.

나는 1페이지의 모든 페이지 결과를 읽었습니다.how to use coalsece구글 결과에서.

처음 발견된 null이 아닌 값을 반환하고 그렇지 않으면 null을 반환한다는 의미를 알고 있습니다.

하지만 저에게는 아직 모호합니다.

  1. 여러 값을 반환하는 쿼리를 보게 된 이유는 무엇입니까?null이 아닌 첫 번째 값만 반환되는 것이 아닙니까?
  2. 그리고 어떤 열을 기준으로 할지 어떻게 결정합니까?coalesce(column1,column2)첫 번째 열이 null이고 다른 열이 null이 아닌 경우는 어떻게 됩니까?
  3. 아니면 제가 틀리거나 구문이 틀리면 어떻게 적절하게 쓸 수 있을까요?
  4. 누가 그것을 사용하는 방법에 대해 아주 좋고 간단한 예를 제공할 수 있습니까?
  5. 그리고 사용하는 것이 바람직할 때.
  1. 어떻게 여러 값을 반환하는 쿼리를 볼 수 있습니까?null이 아닌 첫 번째 값만 반환되지 않습니까?

    예, NULL이 아닌 첫 번째 값만 반환됩니다.그렇지 않다고 생각한 부분에서 본 질문에 대해 잘못 알고 있는 것이 틀림없습니다. 예를 들어 설명해 주시면 오해를 해명하는 데 도움이 될 수 있을 것입니다.

  2. 그리고 어떤 열을 기준으로 할지 어떻게 결정합니까?병합(1열, 2열)?첫 번째 열이 null이고 다른 열이 null이 아닌 경우는 어떻게 됩니까?

    인수 순서: 이 예에서는column1전에column2.

  3. 또는 내가 틀리거나 구문이 틀리면 어떻게 적절하게 쓸 수 있습니까?

    틀린 말이 아닙니다.

  4. 누가 그것을 사용하는 방법에 대해 아주 좋고 간단한 예를 제공할 수 있습니까?

    설명서에서 발췌한 내용:

    
    mysql> SELECT COALESCE(NULL,1);
            -> 1
    mysql> SELECT COALESCE(NULL,NULL,NULL);
            -> NULL
    
  5. 그리고 사용하는 것이 바람직할 때.

    목록에서 NULL이 아닌 첫 번째 값을 선택할 때마다 사용하는 것이 좋습니다.

우선 순위 목록에서 행에 비어 있지 않은 첫 번째 열을 찾으려면 개인적으로 병합을 사용합니다.

예를 들어, 고객 테이블에서 전화 번호를 가져오려고 하는데 모바일, 집 및 직장이라는 이름의 전화 번호 열이 3개 있지만 비어 있지 않은 첫 번째 번호만 검색하려고 합니다.

이 경우, 저는 모바일, 그 다음은 집, 그 다음은 일의 우선순위를 가집니다.

TABLE STRUCTURE
--------------------------------------------
| id | customername | mobile | home | work |
--------------------------------------------
| 1  | Joe          | 123    | 456  | 789  |
--------------------------------------------
| 2  | Jane         |        | 654  | 987  |
--------------------------------------------
| 3  | John         |        |      | 321  |
--------------------------------------------

SELECT id, customername, COALESCE(mobile, home, work) AS phone FROM customers

RESULT
------------------------------
| id | customername | phone  |
------------------------------
| 1  | Joe          | 123    |
------------------------------
| 2  | Jane         | 654    |
------------------------------
| 3  | John         | 321    |
------------------------------

COALESCE는 null이 아닌 첫 번째 열 또는 값을 반환합니다.

사용 예:

SELECT COALESCE(my_column, my_other_column, 'default') as username FROM my_table;

예 결과:

my_column  my_other_column     results
null       null                'default'
null       0                   '0'
null       'jimmy'             'jimmy'
'bob'      'jimmy'             'bob'

이것은 완벽한 예입니다.Coalesce가 변를줄수있면다를 합니다.null 서필드원하는목/해당사에에서 원하는 합니다.null0그리고.1.

이것을 mysql 편집기에 복사하면 훨씬 더 좋아 보일 것입니다.

Select "Column1 (Dont Want Touched)", 
  coalesce(column2(That you want set to 0 if null), 0) as column2 /* (give it same name as was e.g. "column2") */, 
  coalesce(column3(Instead of null set to 1) ,1) as column3 /* (give it same name as was e.g. "column3") */ 
from "MydataTable" 
Where 'somedates' in ('2015-04-10', '2015-04-03', '2015-03-27', '2015-04-17')  and id = 10 order by 'somedates';

언급URL : https://stackoverflow.com/questions/17104329/how-to-use-coalesce-in-mysql

반응형