복붙노트

[SQL] SQL은 - 중복 결과를 제거

SQL

SQL은 - 중복 결과를 제거

나는 모습이 좋아하는 테이블이 있습니다 :

name     | surname
------------------
John     |  John
Jessica  |  Madson

나는이 같은 쿼리가 :

SELECT *
FROM TABLE
WHERE name LIKE '%j%'
    OR surname LIKE '%j%'

내가 무엇을 얻을 :

John John
John John
Jessica Madson

내가 원하는 것은 :

John John
Jessica Madson

어떻게이 중복 결과를 제거 할 수 있습니까?

해결법

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

    1.DISTINCT 사용

    DISTINCT 사용

    SELECT DISTINCT name, surname
    FROM yourtable
    WHERE name LIKE '%j%' OR surname LIKE '%j%'
    
  2. ==============================

    2.시험:

    시험:

    SELECT DISTINCT name, surname FROM table WHERE name LIKE '%j%' OR surname LIKE '%j%'
    
  3. ==============================

    3.당신은 또한에 의해 그룹을 사용할 수 있습니다

    당신은 또한에 의해 그룹을 사용할 수 있습니다

    SELECT name, surname
    FROM yourtable
    WHERE name LIKE '%j%' OR surname LIKE '%j%'
    GROUP BY name, surname
    
  4. ==============================

    4.당신은 별개의 기록을 얻기 위해 SQL 서버에서 DISTINCT를 사용할 수 있습니다. 이 외에도에서 당신은 또한 결과 세트에 번호를 할당하여 서로 다른 결과를 얻을 수있는 ROW_NUMBER (Transact-SQL) 함수를 사용할 수 있습니다.

    당신은 별개의 기록을 얻기 위해 SQL 서버에서 DISTINCT를 사용할 수 있습니다. 이 외에도에서 당신은 또한 결과 세트에 번호를 할당하여 서로 다른 결과를 얻을 수있는 ROW_NUMBER (Transact-SQL) 함수를 사용할 수 있습니다.

    ROW_NUMBER 구문 ()는 다음과 같이 도시된다.

    ROW_NUMBER ( )   
        OVER ( [ PARTITION BY value_expression , ... [ n ] ] order_by_clause )
    

    아래는 구현이다.

    Create table TempTable (name varchar(50), surname varchar(50))
    
    Insert into TempTable Values 
                   ('John', 'John')
                 , ('John', 'John') 
                 , ('Jessica', 'Madson')
                 , ('Jessica', 'Madson') 
                 , ('Suraj', 'Kumar')
                 , ('Peter', 'Smith')
    
    Select * from TempTable -- All records.
    
    Select * from(
    SELECT name
           ,surname
           ,row_number() over (partition by name, surname order by name, surname) as RN -- For partition
    FROM TempTable
    WHERE name LIKE '%j%' OR surname LIKE '%j%'
    )temp
    where RN = 1 -- For Distinct records only
    

    출력은 다음과 같이 모양을 :

    DB <> 바이올린 - 당신은 데모를 찾을 수 있습니다

  5. from https://stackoverflow.com/questions/10659860/sql-remove-the-duplicate-results by cc-by-sa and MIT license