如何检查字符串中的大写存在长度 - Sql Query

时间:2011-08-17 07:54:07

标签: sql sql-server sql-server-2008

如何使用Sql Query检查字符串中的大写存在长度?

例如:

1.KKart - 从这个字符串开始,结果应为2,因为它有2个大写字母。 2.WPOaaa - 从这个字符串开始,结果应为3,因为它有3个大写字母。

提前致谢

2 个答案:

答案 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

原则是简单地将所有小写字母替换为空白并计算其余字符。