我当前的代码工作并突出显示带有非法(隐藏)字符的电子邮件地址,这些字符会进入下游系统并破坏它们。问题是可以使语句更有效,并说搜索 CHAR(1) 和 CHAR(31) 之间的任何字符,而不是列出每一行吗?
SELECT * FROM [Table1].[customer]
where
EMAIL_ADDR like '%'+CHAR(1) +'%' or
EMAIL_ADDR like '%'+CHAR(2) +'%' or
EMAIL_ADDR like '%'+CHAR(3) +'%' or
EMAIL_ADDR like '%'+CHAR(4) +'%' or
EMAIL_ADDR like '%'+CHAR(5) +'%' or
EMAIL_ADDR like '%'+CHAR(6) +'%' or
EMAIL_ADDR like '%'+CHAR(7) +'%' or
EMAIL_ADDR like '%'+CHAR(8) +'%' or
EMAIL_ADDR like '%'+CHAR(9) +'%' or
EMAIL_ADDR like '%'+CHAR(10)+'%' or
EMAIL_ADDR like '%'+CHAR(11)+'%' or
EMAIL_ADDR like '%'+CHAR(12)+'%' or
EMAIL_ADDR like '%'+CHAR(13)+'%' or
EMAIL_ADDR like '%'+CHAR(14)+'%' or
EMAIL_ADDR like '%'+CHAR(15)+'%' or
EMAIL_ADDR like '%'+CHAR(16)+'%' or
EMAIL_ADDR like '%'+CHAR(17)+'%' or
EMAIL_ADDR like '%'+CHAR(18)+'%' or
EMAIL_ADDR like '%'+CHAR(19)+'%' or
EMAIL_ADDR like '%'+CHAR(20)+'%' or
EMAIL_ADDR like '%'+CHAR(21)+'%' or
EMAIL_ADDR like '%'+CHAR(22)+'%' or
EMAIL_ADDR like '%'+CHAR(23)+'%' or
EMAIL_ADDR like '%'+CHAR(24)+'%' or
EMAIL_ADDR like '%'+CHAR(25)+'%' or
EMAIL_ADDR like '%'+CHAR(26)+'%' or
EMAIL_ADDR like '%'+CHAR(27)+'%' or
EMAIL_ADDR like '%'+CHAR(28)+'%' or
EMAIL_ADDR like '%'+CHAR(29)+'%' or
EMAIL_ADDR like '%'+CHAR(30)+'%' or
EMAIL_ADDR like '%'+CHAR(31)+'%'