복붙노트

[SQL] 매개 변수가 모두 선택 null의 경우 SQL 쿼리

SQL

매개 변수가 모두 선택 null의 경우 SQL 쿼리

나는 다음과 같은 쿼리를했습니다 :

SELECT NAME, SURNAME FROM MY_TABLE WHERE NAME = ?;

지금 나는 경우가 원하는 '?' NULL은 모든 레코드가 선택되어야한다. 어떻게 SQL에서 이것을 달성 할 수 있습니까? 감사

해결법

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

    1.또한, 유착이, NVL, ISNULL가 null 값을 확인 IFNULL 기능을 사용할 수 있습니다. 그것은 당신의 RDBMS에 따라 달라집니다.

    또한, 유착이, NVL, ISNULL가 null 값을 확인 IFNULL 기능을 사용할 수 있습니다. 그것은 당신의 RDBMS에 따라 달라집니다.

    MySQL은 :

    SELECT NAME, SURNAME FROM MY_TABLE WHERE NAME = IFNULL(?,NAME);
    

    또는

    SELECT NAME, SURNAME FROM MY_TABLE WHERE NAME = COALESCE(?,NAME);
    

    신탁:

    SELECT NAME, SURNAME FROM MY_TABLE WHERE NAME = NVL(?,NAME);
    

    SQL 서버 / SYBASE :

    SELECT NAME, SURNAME FROM MY_TABLE WHERE NAME = ISNULL(?,NAME);
    
  2. ==============================

    2.이 시도:

    이 시도:

    SELECT * 
    FROM MY_TABLE 
    WHERE @parameter IS NULL OR NAME = @parameter;
    
  3. ==============================

    3.FOLL. 이름 (테이블 열 값)도 NULL이 될 수있는 쿼리는 경우를 처리합니다 :

    FOLL. 이름 (테이블 열 값)도 NULL이 될 수있는 쿼리는 경우를 처리합니다 :

    SELECT NAME, SURNAME FROM MY_TABLE WHERE COALESCE(NAME,'') = COALESCE(?,NAME,'');
    
  4. ==============================

    4.

    SELECT NAME
    FROM MY_TABLE
    WHERE NAME LIKE CASE WHEN ? IS NOT NULL THEN ? ELSE '%' END
    

    이 완벽하게 작동하지만 그것은 단지 null이 아닌 값을 반환합니다.

  5. from https://stackoverflow.com/questions/13474207/sql-query-if-parameter-is-null-select-all by cc-by-sa and MIT license