2011-08-17 78 views
4

如何使用Sql查詢檢查字符串中的大寫字母存在長度?如何檢查字符串中的大寫字母存在長度 - Sql查詢

對於如:

1.KKart - 從這個字符串的結果應該是2,因爲它有2個大寫字母。 2.WPOaaa - 從這個字符串結果應該是3,因爲它有3個大寫字母。

在此先感謝

+0

正如我在請求中提到的那樣,SQL QUERY? – user757207

+0

SQL SERVER 2008 R2 – user757207

+0

任何人都可以幫助我解決這個問題嗎? – user757207

回答

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

+0

非常感謝:) – user757207

-1

怎麼是這樣的:

SELECT len(replace(my_string_field,'abcdefghijklmnopqrstuvwxyz','')) as 'UpperLen' 
FROM my_table 

原理是簡單地通過什麼來代替全部小寫字符並計算剩餘。

+3

您是否試圖在問題的示例字符串上運行此操作?您的代碼只會替換整個字符串'abcdefghijklmnopqrstuvwxyz',如果它發生的確如此。另外,字符串中可以有數字,而不是大寫或小寫字符。 –

相關問題