在sql server中搜索字母数字字符串

在sql server中搜索字母数字字符串,sql,sql-server,Sql,Sql Server,如何在sql server中查找9个字符的字母数字字符串,包括或不包括字母数字字符以外的特殊字符,如uu或/ e、 我有用户名。在本列中,我必须选择只有字母数字字符的值,如123abc、234def,而不是23*kl或25/bz。试试这个 select * from [tbkname] where len([columnname]) = 9 AND columnname like '%[^a-zA-Z0-9]%' 你是不是在期待下面这样的事情 DECLARE @InputString NVAR

如何在sql server中查找9个字符的字母数字字符串,包括或不包括字母数字字符以外的特殊字符,如uu或/ e、 我有用户名。在本列中,我必须选择只有字母数字字符的值,如123abc、234def,而不是23*kl或25/bz。

试试这个

select * from [tbkname] where len([columnname]) = 9 AND columnname like '%[^a-zA-Z0-9]%'

你是不是在期待下面这样的事情

DECLARE @InputString NVARCHAR(MAX) = 'D!E#$M&*O_@&1@&'
DECLARE @SrchExpr VARCHAR(255)
SET @SrchExpr =  '%[^a-z0-9]%'
    WHILE PatIndex(@SrchExpr, @InputString) > 0
        SET @InputString = Stuff(@InputString, PatIndex(@SrchExpr, @InputString), 1, '')
    SELECT @InputString
编辑:
有关更一般化的解决方案,请参阅

你说的是随机生成的字符串吗?请添加更多细节…不。我必须从只有9个字母数字字符的列中选择字符串。您是否有一个包含字母数字字符串的表,并且希望搜索该字符串?非常好!但我想知道我们是否可以将它表示为simple.sqlserver查询而不是T-sql。我还要检查字符串中的字符数是否为9谢谢Friayank!这似乎是确切的答案。但是,如果我希望值具有字母数字值以外的其他字符。。。。。。。。不像“[^a-zA-Z0-9]”那样有效,或者我们必须在其中添加更多字符?你的意思是说特殊字符吗?是的,特殊字符,如*,$,/等。只需将正则表达式从字母数字更改为特殊字符表达式即可,即“[^.*?[!$%&*+,\-./:;?@[\]^`{124;}+.*?$]”