Program Club

소문자가 포함 된 값이있는 행을 찾는 방법

proclub 2020. 12. 2. 22:07
반응형

소문자가 포함 된 값이있는 행을 찾는 방법


ColumnX에 소문자가 포함 된 모든 행 (예 : "1234aaaa5789")을 제공하는 SQL 쿼리를 찾고 있습니다. 대문자와 동일합니다.


SELECT * FROM my_table 
WHERE UPPER(some_field) != some_field

이것은 åäöøüæï와 같은 재미있는 캐릭터와 함께 작동합니다. 테이블에 언어 별 utf-8 데이터 정렬을 사용해야 할 수도 있습니다.


SELECT * FROM my_table WHERE my_column = 'my string'
COLLATE Latin1_General_CS_AS

이것은 대소 문자를 구분하는 검색을합니다.


편집하다

에 명시된 바와 같이 kouton여기 코멘트tormuto여기 코멘트 누구든지 정렬 아래에 문제에 직면

COLLATE Latin1_General_CS_AS

먼저 SQL 서버, 해당 데이터베이스 및 해당 열의 기본 데이터 정렬확인해야합니다 . 쿼리 식과 함께 기본 데이터 정렬을 전달합니다. 데이터 정렬 목록은 여기 에서 찾을 수 있습니다 .


SELECT * FROM Yourtable 
WHERE UPPER([column_NAME]) COLLATE Latin1_General_CS_AS !=[Column_NAME]

모든 행을 소문자로 검색

SELECT *
FROM Test
WHERE col1 
LIKE '%[abcdefghijklmnopqrstuvwxyz]%'
collate Latin1_General_CS_AS

감사합니다 Manesh Joseph


IN MS SQL 서버는 COLLATE 절을 사용합니다.

SELECT Column1
FROM Table1
WHERE Column1 COLLATE Latin1_General_CS_AS = 'casesearch'

추가 COLLATE Latin1_General_CS_AS하면 검색 대소 문자를 구분합니다.

SQL Server 설치의 기본 데이터 정렬은 SQL_Latin1_General_CP1_CI_AS대소 문자를 구분하지 않습니다.

테이블에 대한 모든 열의 데이터 정렬을 변경하려면 다음 쿼리를 영구적으로 실행하십시오.

ALTER TABLE Table1
ALTER COLUMN Column1 VARCHAR(20)
COLLATE Latin1_General_CS_AS

저장 프로 시저를 따라 실행되는 테이블에 대한 열의 데이터 정렬을 확인합니다.

EXEC sp_help DatabaseName

출처 : SQL SERVER – Collate – 대소 문자 구분 SQL 쿼리 검색


이것은 정확히 게시되지 않은 것 같은 utf8 인코딩 테이블과 utf8_unicode_ci 열에 대해 수행 한 방법입니다.

SELECT *
FROM table
WHERE UPPER(column) != BINARY(column)

mysql> SELECT '1234aaaa578' REGEXP '^[a-z]';

결과를 대소 문자를 구분 하려면 ColumnX 에 BINARY를 추가해야 합니다.

SELECT * FROM MyTable WHERE BINARY(ColumnX) REGEXP '^[a-z]';

소문자를 찾기 위해 이와 같은 작업을 수행했습니다.

SELECT *
FROM YourTable
  where BINARY_CHECKSUM(lower(ColumnName)) = BINARY_CHECKSUM(ColumnName)

나는 MySQL의 전문가가 아닙니다 REGEXP.

SELECT * FROM MyTable WHERE ColumnX REGEXP '^[a-z]';

Posgresql에서는 다음을 사용할 수 있습니다. ~

예를 들어 col_a소문자로 된 문자 있는 모든 행을 검색 할 수 있습니다.

select * from your_table where col_a '[a-z]';

필요에 따라 Regex 표현식을 수정할 수 있습니다.

문안 인사,


--Sql 용

SELECT *
FROM tablename
WHERE tablecolumnname LIKE '%[a-z]%';

참고 URL : https://stackoverflow.com/questions/4123418/how-to-find-rows-that-have-a-value-that-contains-a-lowercase-letter

반응형