[英]A-Z loop in SQL Stored Procedure
對於一個項目,我必須遍歷字母並針對數據庫中的某些值來搜索每個字母。 該函數將返回每個字母的匹配數。
我希望能夠在SQL存儲過程中執行此操作,但是我不確定如何在SP中執行“ FOR letter = A to Z”循環。 有誰知道該怎么做?
如果您只需要英文字符,則根據字母表而定,您可以從65(A為ascii)和90(Z)組成一個循環,並使用char letter = (char)i
來獲取字母。
如果您還需要非英語語言的用戶,則只需將網絡配置設置為“ ABC ...... Z”並循環瀏覽即可。
with ATable(c) as
(
select cast('A' as CHAR(1)) as c
union all
select CHAR(ASCII(c)+1) as C from ATable where C<'Z'
)
select * from ATable
使用從65(A)到90(Z)的循環,並使用T-SQL CHAR()函數 。
當然,我假設您正在使用SQL Server數據庫。 如果沒有,請發布您正在使用的數據庫。
您需要使用“分組依據”,並且可能在查詢中也包含“計數”。 您可以在此處找到更多信息http://msdn.microsoft.com/zh-cn/library/ms177673.aspx
;WITH Alphabet AS
(
SELECT CHAR(65) AS Letter, 65 AS Code
UNION ALL
SELECT CHAR(Code + 1), Code + 1
FROM Alphabet
WHERE Code < 90
)
SELECT Letter
FROM Alphabet
WITH alpha AS
(
SELECT 65 AS c
UNION ALL
SELECT c + 1 FROM alpha
WHERE c < 90
)
SELECT CHAR(c) FROM alpha
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.