如何使用Sql Query检查字符串中的大写存在长度?
例如:
1.KKart - 从这个字符串开始,结果应为2,因为它有2个大写字母。 2.WPOaaa - 从这个字符串开始,结果应为3,因为它有3个大写字母。
提前致谢
答案 0 :(得分:4)
没有内置的T-SQL功能。
您可以使用这样的用户定义函数:
CREATE FUNCTION CountUpperCase
(
@input nvarchar(50)
)
RETURNS int
AS
BEGIN
declare @len int
declare @i int
declare @count int
declare @ascii int
set @len = len(@input)
set @i = 1
set @count = 0
while @i <= @len
begin
set @ascii = ascii(substring(@input, @i, 1))
if @ascii >= 65 and @ascii <= 90
begin
set @count = @count +1
end
set @i = @i + 1
end
return @count
END
用法(使用您问题中的示例):
select dbo.CountUpperCase('KKart')
返回2
select dbo.CountUpperCase('WPOaaa')
会返回3
。
答案 1 :(得分:-1)
这样的事情怎么样:
SELECT len(replace(my_string_field,'abcdefghijklmnopqrstuvwxyz','')) as 'UpperLen'
FROM my_table
原则是简单地将所有小写字母替换为空白并计算其余字符。