[SQL] "DISTINCT SELECT는"서로 다른 경우를 무시
SQL"DISTINCT SELECT는"서로 다른 경우를 무시
내가 MSSQL Server 2000의 테이블에서 일부 고유 한 값을 선택해야한다는 문제가 (특정 열은 NVARCHAR 유형이다). 이 때로는 같은 값은,하지만 서로 다른 경우로, 예를 들어 (의사) :
SELECT DISTINCT * FROM ("A", "a", "b", "B")
반환
A,b
그러나 나는 희망을 (그리고 기대)
A,a,b,B
그들은 실제로 다른 값 때문이다.
어떻게이 문제를 해결하기 위해?
해결법
-
==============================
1.데이터 정렬은 경우를 구분으로 설정됩니다.
데이터 정렬은 경우를 구분으로 설정됩니다.
당신이 뭔가를 할 필요가
Select distinct col1 COLLATE sql_latin1_general_cp1_cs_as From dbo.myTable
-
==============================
2.확실하지 MS SQL에 대한하지만, MySQL의 또는 포스트 그레스,이 작업에 사용 BINARY와. 과 같이 바이너리에 열 캐스트 :
확실하지 MS SQL에 대한하지만, MySQL의 또는 포스트 그레스,이 작업에 사용 BINARY와. 과 같이 바이너리에 열 캐스트 :
SELECT DISTINCT BINARY(column1) from table1;
그냥 스키마에 따라 컬럼 1과 표를 변경합니다.
다른 사람을 위해 작동합니다 MySQL은 5.7에서 나를 위해 작동 전체 예 :
SELECT DISTINCT BINARY(gateway) from transactions;
건배!
-
==============================
3.
SELECT DISTINCT CasedTheColumn FROM ( SELECT TheColumn COLLATE LATIN1_GENERAL_BIN AS CasedTheColumn FROM myTAble )FOO WHERE CasedTheColumn IN ('A', 'a'...)
-
==============================
4.예를 들어, 어떤 바이너리에 문제의 컬럼의 정렬을 설정하십시오 UTF8 - 빈. 당신도 할 수있는 SELECT 문 자체 또는 (그것이 내부적으로 제대로 보관하기 때문에, 데이터 정렬을 쿼리가 실행될 때마다 매핑 할 필요가 없습니다 의미) 직접 테이블 구조를 변경하여.
예를 들어, 어떤 바이너리에 문제의 컬럼의 정렬을 설정하십시오 UTF8 - 빈. 당신도 할 수있는 SELECT 문 자체 또는 (그것이 내부적으로 제대로 보관하기 때문에, 데이터 정렬을 쿼리가 실행될 때마다 매핑 할 필요가 없습니다 의미) 직접 테이블 구조를 변경하여.
from https://stackoverflow.com/questions/2644851/select-distinct-ignores-different-cases by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] ORA-01861 : 리터럴이 형식 문자열과 일치하지 않습니다 (0) | 2020.07.06 |
---|---|
[SQL] 만 MYSQL DATEDIFF의 시간을 보여 (0) | 2020.07.06 |
[SQL] 상호 친구가 가입하여 SQL (MySQL의) (0) | 2020.07.06 |
[SQL] SQL 서버 데이터 루프 2005 재귀 쿼리는 - 그것이 가능할까요? (0) | 2020.07.06 |
[SQL] 오라클에서 SELECT 문의 결과 목록을 쉼표로 구분 [중복] (0) | 2020.07.06 |