Notifications
Clear all
Dec 16, 2023 10:43 am
Yêu cầu: cần loại bỏ các ký tự đặc biệt trong field text.
Ví dụ:
Text trước khi được xử lý: '%abc &def #g $h Øi !j (k)'
Text sau khi được xử lý: 'abc def g h i j k'
Giải pháp:
DECLARE @str VARCHAR(400)='%abc &def #g $h Øi !j (k)' DECLARE @expres VARCHAR(50) = '%[~,@,#,$,%,&,*,(,),.,Ø,",!]%' WHILE PATINDEX( @expres, @str ) > 0 SET @str = Replace(REPLACE( @str, SUBSTRING( @str, PATINDEX( @expres, @str ), 1 ),''),'-',' ') SELECT @str
Nguồn: Stackoverflow
1 Reply
Dec 16, 2023 4:52 pm
Để dễ dàng thực hiện câu truy vấn, bạn có thể tạo hàm và sau đó sử dụng hàm vừa tạo trong các câu query.
1. Tạo function
CREATE FUNCTION UF_Remove_SpecialCharacters( @str NVARCHAR(MAX)) RETURNS NVARCHAR(MAX) AS BEGIN DECLARE @expres NVARCHAR(50) = '%[~,@,#,$,%,&,*,(,),.,Ø,",!]%' WHILE PATINDEX( @expres, @str ) > 0 SET @str = Replace(REPLACE( @str, SUBSTRING( @str, PATINDEX( @expres, @str ), 1 ),''),'-',' ') RETURN @str END
2. Sử dụng hàm vừa tạo trong câu truy vấn