Check If the string contains accented characters in SQL?

前端 未结 3 1913
无人及你
无人及你 2020-11-27 23:26

I want to perform a task if the input string contain any accented characters else do another task in SQL. Is there any way to check this condition in SQL ?

Eg:

3条回答
  •  一个人的身影
    2020-11-28 00:08

    A Crude way is to check ASCII() >= 128 for each character. Something like this

    DECLARE @MyString NVARCHAR(100)
    SET @MyString = N'àéêöhello!'
    
    ;WITH N as 
    (
    SELECT 1 r UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 UNION ALL SELECT 1 
    ), Numbers
    as
    (
    SELECT RN = ROW_NUMBER()OVER(ORDER BY N1.r) FROM N as N1 CROSS JOIN N as N2
    )
    SELECT MAX(CASE WHEN ASCII(SUBSTRING(@MyString,RN,1)) >= 128 THEN 1 ELSE 0 END) ContainsAccentedChars FROM Numbers
    WHERE RN <= LEN(@MyString)
    

提交回复
热议问题