私は別のストアドプロシージャまたは関数を呼び出して実行することによって作成されるテーブル名resultadoを持っています。結果として、 '111100001'のようなベクトルとして '1'と '0'を含む列があります。また、私はそれに続くように 'ベクター'の1の数を数えるストアを手配しました。テーブルの列に対するストアプロシージャのアクションの結果でテーブルを更新します。
ALTER PROC [dbo].[CharCount](@String VARCHAR(4000),@caracter VARCHAR(2))
AS
BEGIN
DECLARE @long INT
DECLARE @numeroveces INT =0
DECLARE @consecutivo INT =0
DECLARE @consecutivo1 INT =0
SET @numeroveces=0
SET @long=LEN(@String)
WHILE @long>=0
BEGIN
IF @caracter=SUBSTRING(@String,@long,1)
BEGIN
set @numeroveces = @numeroveces + 1
set @consecutivo = @consecutivo + 1
END
IF @caracter<>SUBSTRING(@String,@long,1) or (@long = 0)
BEGIN
IF @consecutivo > @consecutivo1
BEGIN
set @consecutivo1 = @consecutivo
END
set @consecutivo = 0
END
SET @[email protected]
END
SELECT @numeroveces
SELECT @consecutivo1
END
私が必要とするのは、自分のテーブルresultadoから列のストアプロシージャを実行し、カラムの結果をSPで更新することです。
OriginalColumn ---> SPResult ----> UpdatedColumn
110111 ---> 5 ----> 5
OriginalColumnの各値に手続きを実行して更新しますか? – Marusyk
このコードで何をしようとしていますか?ここではループの必要はないようです。特定の文字が文字列内にある回数を数えているようですね。 –
@MegaTronはい元の列の各値にプロシージャを実行したいです。 –