[SQL] SQL 대소 문자 구분 문자열 비교
SQLSQL 대소 문자 구분 문자열 비교
당신은 어떻게 비교가 문자열의 각각의 경우가 아니라 동일한 경우에만 사실 너무 문자열을 비교 않습니다. 예를 들면 :
Select * from a_table where attribute = 'k'
... 'K'의 속성을 가진 행을 반환합니다. 나는이 동작을하지 않습니다.
해결법
-
==============================
1.
Select * from a_table where attribute = 'k' COLLATE Latin1_General_CS_AS
트릭을했다.
-
==============================
2.또한이 구문을 사용하여 대소 문자를 구분하여 그 속성을 변환 할 수 있습니다 :
또한이 구문을 사용하여 대소 문자를 구분하여 그 속성을 변환 할 수 있습니다 :
ALTER TABLE Table1 ALTER COLUMN Column1 VARCHAR(200) COLLATE SQL_Latin1_General_CP1_CS_AS
이제 검색은 대소 문자를 구분됩니다.
당신이 영향을받지 다시 열 경우를 확인하려면 다음 사용
ALTER TABLE Table1 ALTER COLUMN Column1 VARCHAR(200) COLLATE SQL_Latin1_General_CP1_CI_AS
-
==============================
3.쉽게 VARBINARY (최대 길이)에 열을 변환 할 수 있습니다, 길이는 당신이 결함이있는 비교를 피할 것으로 예상 최대해야합니다, 그것은 열 길이 설정 길이에 충분하다. 당신이 공간을 제외하고 실제 값을 비교하는 트림 열 도움 의미를 가지고 있으며, 여러분의 테이블 컬럼의 가치, 이것은 간단한 샘플입니다 그리고 당신은 내가 변환하고 비교 한 후 열 값을 잘라 내고 볼 수 있습니다 :
쉽게 VARBINARY (최대 길이)에 열을 변환 할 수 있습니다, 길이는 당신이 결함이있는 비교를 피할 것으로 예상 최대해야합니다, 그것은 열 길이 설정 길이에 충분하다. 당신이 공간을 제외하고 실제 값을 비교하는 트림 열 도움 의미를 가지고 있으며, 여러분의 테이블 컬럼의 가치, 이것은 간단한 샘플입니다 그리고 당신은 내가 변환하고 비교 한 후 열 값을 잘라 내고 볼 수 있습니다 :
CONVERT(VARBINARY(250),LTRIM(RTRIM(Column1))) = CONVERT(VARBINARY(250),LTRIM(RTRIM(Column2)))
이 도움을 바랍니다.
-
==============================
4.또 다른 대안으로는 HASHBYTES,이 같은 것을 사용할 수 있습니다 :
또 다른 대안으로는 HASHBYTES,이 같은 것을 사용할 수 있습니다 :
SELECT * FROM a_table WHERE HASHBYTES('sha1', attribute) = HASHBYTES('sha1', 'k')
-
==============================
5.당신은 BINARY로 속성을 정의하거나 검색을 수행 할 수 INSTR 또는 STRCMP를 사용할 수 있습니다.
당신은 BINARY로 속성을 정의하거나 검색을 수행 할 수 INSTR 또는 STRCMP를 사용할 수 있습니다.
from https://stackoverflow.com/questions/3969059/sql-case-sensitive-string-compare by cc-by-sa and MIT license
'SQL' 카테고리의 다른 글
[SQL] 당신은 어떻게 psql의에서 스크립트 변수를 사용합니까? (0) | 2020.03.25 |
---|---|
[SQL] JDBC와 MySQL의를 사용하여 .SQL 스크립트를 실행 (0) | 2020.03.25 |
[SQL] MySQL은 - 하나 개의 쿼리에서 다른 값으로 UPDATE 여러 행 (0) | 2020.03.25 |
[SQL] 두 점 사이의 거리를 계산 (위도, 경도) (0) | 2020.03.25 |
[SQL] SQL SET UPDATE 하나의 열은 다른 열 참조하는 관련 테이블의 값과 동일하도록? (0) | 2020.03.25 |