There is no built-in T-SQL function for this.
You can use a custom function like this:
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
Usage (with examples from your question):
select dbo.CountUpperCase('KKart') returns 2 .
select dbo.CountUpperCase('WPOaaa') returns 3 .
source share