如何使用Sql查询检查字符串中的大写字母存在长度?如何检查字符串中的大写字母存在长度 - Sql查询
对于如:
1.KKart - 从这个字符串的结果应该是2,因为它有2个大写字母。 2.WPOaaa - 从这个字符串结果应该是3,因为它有3个大写字母。
在此先感谢
如何使用Sql查询检查字符串中的大写字母存在长度?如何检查字符串中的大写字母存在长度 - Sql查询
对于如:
1.KKart - 从这个字符串的结果应该是2,因为它有2个大写字母。 2.WPOaaa - 从这个字符串结果应该是3,因为它有3个大写字母。
在此先感谢
没有内置的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
。
非常感谢:) – user757207
怎么是这样的:
SELECT len(replace(my_string_field,'abcdefghijklmnopqrstuvwxyz','')) as 'UpperLen'
FROM my_table
原理是简单地通过什么来代替全部小写字符并计算剩余。
您是否试图在问题的示例字符串上运行此操作?您的代码只会替换整个字符串'abcdefghijklmnopqrstuvwxyz',如果它发生的确如此。另外,字符串中可以有数字,而不是大写或小写字符。 –
正如我在请求中提到的那样,SQL QUERY? – user757207
SQL SERVER 2008 R2 – user757207
任何人都可以帮助我解决这个问题吗? – user757207