2.1M 행을 가진 많은 열이있는 테이블이 있습니다. 여기에 내 문제와 관련되는 열은 다음과 같습니다밑줄 및 공백을 제외한 특수 문자가 포함 된 행을 찾습니다.
Column_name Type Computed Length Prec Scale Nullable TrimTrailingBlanks FixedLenNullInSource Collation
id int no 4 10 0 no (n/a) (n/a) NULL
val varchar no 15 yes no yes SQL_Latin1_General_CP1_CI_AS
내가 A-Z
, a-z
, 0-9
, (공간) 이외의 문자 및 열
val
에서 _
포함 된 행을 반환합니다. 샘플 데이터 :
INSERT INTO tabl
(id, val)
VALUES (1, 'Extemporè'),
(2, 'Aâkash'),
(3, 'Driver 12'),
(4, 'asd'),
(5, '10'),
(6, 'My_Car'),
(7, 'Johnson & Sons'),
(8, 'Johan''s Service'),
(9, 'Indus Truck')
예상 출력 : 제가 비슷한 질문 here 그러나 또한 제공되지 예상 검색 결과
id val
-- -----------
1 Extemporè
2 Aâkash
7 Johnson & Sons
8 Johan's Service
:
id val
-- ----------
7 Johnson & Sons
8 Johan's Service
:
SELECT *
FROM tabl
WHERE val LIKE '%[^A-Z0-9 _]%'
을 결과를 제공합니다
SELECT * FROM tbl 여기서 PATINDEX ('% [^ a-zA-Z0-9 _] %', Col)> 0 – knkarthick24
@ knkarthick24 그것은 내 쿼리와 같은 결과를 제공하며 ID가 1과 2 인 행을 반환하지 않습니다. –
어떤 결과를 얻지 않았다고 생각합니까? 당신의 대조는 무엇입니까? 'WHERE val LIKE '% [^ a-zA-Z0-9 _] %'COLLATE Latin1_General_CI_AI'을 시도하십시오. 실제로, '% [^ A-Z0-9 _] %' ' –