检查字符串是否仅由Transact-SQL中的字母或数字组成



如何在Transact-SQL中检查字符串是否仅由字母或数字组成?

此处字符串的数据类型为nchar,"letters"专门指拉丁字符。数据库环境为Microsoft SQL Server 2014。

所需结果示例:

C172E returns True
412?A returns False  //'?' is neither a letter nor a number

我做了一些搜索,但只找到了内置的ISNUMERIC()函数,它只用于数字。

是否有解决此问题的Transact-SQL解决方案?

请参阅关于仅获取具有字母数字数据的字段的类似问题

您可以执行以下操作:

FIELD NOT LIKE '%[^a-zA-Z0-9]%'

您可以使用not like:

(case when str not like '%[^a-zA-Z0-9]%' then 1 else 0 end) as isalnum_flag

这意味着字符串没有非字母数字字符。

您正在考虑使用Regex来实现这一点。[a-zA-Z]是字符,[0-9]是数字,[a-zA-Z0-9]两者都是。你提到必须添加空格吗?\s是空白字符(这可能不仅仅是字段。

这一次有点复杂(更深入(。

最新更新