如何使用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