2

プロジェクトの場合、アルファベットをループして、データベース内のいくつかの値に対して各文字を検索する必要があります。この関数は、各文字の一致数を返します。

SQLストアドプロシージャでこれを実行できるようにしたいのですが、SPで「FOR文字=AからZ」ループを実行する方法がわかりません。誰かがこれがどのように行われるか知っていますか?

4

6 に答える 6

2

英語の文字だけが必要な場合は、アルファベットによって異なりますが、65(Aの場合はASCII)と90(Z)のループを実行してchar letter = (char)i、文字を取得するために使用できます。

英語以外のものも必要な場合は、Web構成設定「ABC......Z」を設定してループします。

于 2013-03-26T11:57:10.167 に答える
2
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

SQLFiddleデモ

于 2013-03-26T12:07:42.000 に答える
1

65(A)から90(Z)までのループを使用し、T-SQL CHAR()関数を使用します。

もちろん、SQLServerデータベースを使用していることを前提としています。そうでない場合は、使用しているDBを投稿してください。

于 2013-03-26T11:56:50.113 に答える
0

「groupby」を使用する必要があり、クエリに「count」も含める必要があります。詳細については、http://msdn.microsoft.com/en-us/library/ms177673.aspxを参照してください。

于 2013-03-26T11:56:54.423 に答える
0
;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
于 2013-03-26T11:58:13.797 に答える
-1
WITH alpha AS
(
    SELECT 65 AS c
    UNION ALL
    SELECT c + 1 FROM alpha
    WHERE c < 90
)
SELECT CHAR(c) FROM alpha
于 2014-05-30T07:21:00.107 に答える