是否可以使用SQL中的"Where"子句仅显示仅包含字母和数字的字段?

PDB*_*PDB 3 sql t-sql sql-server select where

我希望能够只选择某个字段包含字母和数字的字段.例如:

Select [field1], [field2] 

from [db1].[table1] 

where [field2] = *LETTERS AND NUMBERS*
Run Code Online (Sandbox Code Playgroud)

我使用SQL Server 2005,也很抱歉,我不是百分之百确定该字段的数据类型,因为它在链接服务器上,并且在一分钟内无法访问.希望你能帮忙

:)

gbn*_*gbn 9

喜欢这样做.这是一个双重否定

where [field2] NOT LIKE '%[^0-9a-z]%'
Run Code Online (Sandbox Code Playgroud)

它说:

  • %[^0-9a-z]% 手段 not (alphanumeric)
  • NOT LIKE '%[^0-9a-z]%'意思是not(not(alphanumeric))- >字母数字

编辑:

对于所有数字......"它有效"

SELECT 'it works' WHERE '1234567' NOT LIKE '%[^0-9a-z]%'
Run Code Online (Sandbox Code Playgroud)

所有的信件

SELECT 'it works' WHERE 'abcdefg' NOT LIKE '%[^0-9a-z]%'
Run Code Online (Sandbox Code Playgroud)

包含非字母数字

SELECT 'it works' WHERE 'abc_123' NOT LIKE '%[^0-9a-z]%'
Run Code Online (Sandbox Code Playgroud)

编辑2:

这个解决方案是为了

只有字母数字,字母和数字的任何混合

编辑3:

字母后跟数字

where [field2] NOT LIKE '%[^0-9a-z]%' AND [field2] LIKE '[a-z]%[0-9]'
Run Code Online (Sandbox Code Playgroud)

编辑:

最后,2个字母和最多3个数字

where
   [field2] LIKE '[a-z][a-z][0-9]'
   OR
   [field2] LIKE '[a-z][a-z][0-9][0-9]'
   OR
   [field2] LIKE '[a-z][a-z][0-9][0-9][0-9]'
Run Code Online (Sandbox Code Playgroud)