当前位置: 代码迷 >> Sql Server >> sql2008 r2 怎样实现判断字符串中包含小写字母,该如何解决
  详细解决方案

sql2008 r2 怎样实现判断字符串中包含小写字母,该如何解决

热度:490   发布时间:2016-04-24 10:21:25.0
sql2008 r2 怎样实现判断字符串中包含小写字母
请教:
使用sql2008 r2,怎样判断字符串中包含小写字母。
例如ABcDE,使用什么样的函数可以判断出存在小写字母,谢谢。
------解决方案--------------------
ascii码在97 ~122之间的为小写字母
------解决方案--------------------


使用 collate 设定排序规则为 区分大小写

/*------------------------

with cte (value) as (select 'ABc' union all select 'DEF')
select *
from cte
where value <> UPPER(value) COLLATE Chinese_PRC_CS_AS;

------------------------*/
value
-----
ABc

(1 行受影响)


------解决方案--------------------

WITH a1 (cStr) AS
(
SELECT 'ABcDE'
)
,a2 AS
(
SELECT cStr,SUBSTRING(cStr,1,1) cStr2,1 n FROM a1
UNION ALL 
SELECT cStr,SUBSTRING(cStr,n+1,1) cStr2,n+1
FROM a2
WHERE n+1<=LEN(cStr)
)
SELECT 
CASE 
WHEN EXISTS(SELECT 1 FROM a2 WHERE ASCII(cStr2) BETWEEN 97 AND 122) THEN 'Y'
ELSE 'N'
END
OPTION(MAXRECURSION 0)