sql-server – 使用SELECT仅获取SQL Server中包含字母数字数据(和某些标点符号)的字段

前端之家收集整理的这篇文章主要介绍了sql-server – 使用SELECT仅获取SQL Server中包含字母数字数据(和某些标点符号)的字段前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图过滤一些sql服务器数据,并要求具有以下条件的结果:

>字段中包含字母数字字符,不区分大小写
>该字段有一定的标点符号(撇号和连字符)
>该字段没有空格

有没有一种有效的方法sql Server中使用CHAR执行此操作,还是有人有更好的解决方案?

解决方法

这使用双倍负片仅过滤到所需的字符范围

期望范围之外的任何字符都可以从LIKE中获得真实.如果字符串仅包含所需范围内的字符,则LIKE给出false.然后另一个不

WHERE
   SomeCol NOT LIKE '%[^a-z0-9-'']%'

注意:我在这里使用单引号

默认情况下,sql Server不区分大小写.如果需要,添加COLLATE子句

SomeCol COLLATE Latin1_General_CI_AS NOT LIKE '%[^a-z0-9-']%'

或改变范围

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

或者,如果你想包括ä= a

SomeCol COLLATE Latin1_General_CI_AI NOT LIKE '%[^a-z0-9-']%'
原文链接:https://www.f2er.com/mssql/77758.html

猜你在找的MsSQL相关文章