반응형
SQL 대소 문자 구분 문자열 비교
각 문자열의 경우가 동일한 경우에만 비교가 이루어 지도록 문자열을 비교하는 방법은 무엇입니까? 예를 들면 다음과 같습니다.
Select * from a_table where attribute = 'k'
... 'K'속성을 가진 행을 반환합니다. 나는이 행동을 원하지 않는다.
Select * from a_table where attribute = 'k' COLLATE Latin1_General_CS_AS
트릭을 했어.
이 구문을 사용하여 해당 속성을 대소 문자를 구분 하여 변환 할 수도 있습니다 .
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
VARBINARY (최대 길이)로 열을 쉽게 변환 할 수 있습니다. 길이는 결함 비교를 피할 것으로 예상되는 최대 값이어야합니다. 길이를 열 길이로 설정하면 충분합니다. 트림 열은 공간이 의미가 있고 테이블 열에서 값을 갖는 것을 제외하고 실제 값을 비교하는 데 도움이됩니다. 이것은 간단한 샘플이며 열 값을 자른 다음 변환 및 비교합니다.
CONVERT(VARBINARY(250),LTRIM(RTRIM(Column1))) = CONVERT(VARBINARY(250),LTRIM(RTRIM(Column2)))
이 도움을 바랍니다.
다른 대안으로 HASHBYTES를 사용할 수 있습니다.
SELECT *
FROM a_table
WHERE HASHBYTES('sha1', attribute) = HASHBYTES('sha1', 'k')
당신은 정의 할 수 있습니다 attribute
로 BINARY
사용하거나 INSTR
또는 STRCMP
검색을 수행 할 수 있습니다.
참고 URL : https://stackoverflow.com/questions/3969059/sql-case-sensitive-string-compare
반응형
'IT story' 카테고리의 다른 글
MVC 4 @Scripts“존재하지 않습니다” (0) | 2020.05.08 |
---|---|
Java 컬렉션을 훌륭하게 인쇄 (toString이 출력을 제대로 반환하지 않음) (0) | 2020.05.08 |
Cocoa 앱에서 터미널 명령 실행 (0) | 2020.05.08 |
자바 연관 배열 (0) | 2020.05.08 |
grep으로 한 줄에 두 줄을 일치시킵니다. (0) | 2020.05.08 |