[SQL] 어떻게 대소 문자를 구분 그룹 BY를 할까?
SQL어떻게 대소 문자를 구분 그룹 BY를 할까?
나는 아래의 코드를 실행하면 :
with temp as
(
select 'Test' as name
UNION ALL
select 'TEST'
UNION ALL
select 'test'
UNION ALL
select 'tester'
UNION ALL
select 'tester'
)
SELECT name, COUNT(name)
FROM temp
group by name
그것은 결과를 반환합니다 :
TEST 3
tester 2
결과가 될 것이라고 BE 대소 문자를 구분하므로으로 그룹을 수있는 방법이 있나요 :
Test 1
TEST 1
test 1
tester 2
해결법
-
==============================
1.당신은 대소 문자를 구분 데이터 정렬을 사용할 수 있습니다 :
당신은 대소 문자를 구분 데이터 정렬을 사용할 수 있습니다 :
with temp as ( select 'Test' COLLATE Latin1_General_CS_AS as name UNION ALL select 'TEST' UNION ALL select 'test' UNION ALL select 'tester' UNION ALL select 'tester' ) SELECT name, COUNT(name) FROM temp group by name
-
==============================
2.당신은 바이너리와 텍스트를 주조 (또는 소문자 구분 데이터 정렬을 사용)해야합니다.
당신은 바이너리와 텍스트를 주조 (또는 소문자 구분 데이터 정렬을 사용)해야합니다.
With temp as ( select 'Test' as name UNION ALL select 'TEST' UNION ALL select 'test' UNION ALL select 'tester' UNION ALL select 'tester' ) Select Name, COUNT(name) From temp Group By Name, Cast(name As varbinary(100))
데이터 정렬을 사용하여 :
Select Name Collate SQL_Latin1_General_CP1_CS_AS, COUNT(name) From temp Group By Name Collate SQL_Latin1_General_CP1_CS_AS
-
==============================
3.간단히:
간단히:
SELECT count(*), CAST(lastname as BINARY) AS lastname_cs FROM names GROUP BY lastname_cs;
from https://stackoverflow.com/questions/10952696/how-to-do-a-case-sensitive-group-by by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 큰 길이 VARCHAR2 열을 정의 영향 (0) | 2020.06.29 |
---|---|
[SQL] 숫자 변환 VARCHAR 정렬 (0) | 2020.06.29 |
[SQL] MySQL의 : 한 테이블에서 레코드를 카운트 한 다음 다른 업데이트 (0) | 2020.06.29 |
[SQL] SQL ORDER 수치가 문자 (0) | 2020.06.29 |
[SQL] 오라클 : 같은 행의 다른 컬럼에서 선택 최대 값 (0) | 2020.06.29 |