0

私はテーブルを持っています。議論のために、私はそれをテーブルと呼びました。テーブルには、3 つの列があります。列 (Pkey、名前、ID、場所)。

   **PKey**      **Name**                         **ID**        **Location**
     1         Penn State Main - 1551             1234             01
     2         Penn State Branch - 1551           2345             02  
     3         Florida State - 1661               3456             03 
     4         Florida State Branch -1661         4567             04 

すべての行のダッシュ (-) の後の値を ID+'-'+Location に置き換えたい

私はこれまでのところこれを持っています:

BEGIN
declare @name1 varchar(50),@name varchar(50),@ID char(4), @location char(2)
declare @IDLocation varchar(6),@loop int

set @loop=0
set @IDLocation=''
set @name1=''

DECLARE _cursor cursor for
    select name,ID,location from Table
OPEN _cursor

FETCH _cursor 
into @name, @ID, @location

while @@FETCH_STATUS = 0
Begin
set @IDLocation = @ID+'-'+@location
if @loop !=0
Begin
    Select SUBSTRING(@name,1,CHARINDEX('-',@name)-1)
End
    set @name1= @name+'-'+ @IDLocation
    set @loop= @loop + 1

    Fetch _cursor 
    into @name, @ID, @location
End
close _cursor
deallocate _cursor
END

概要。本当に力を尽くしました。これを実行しても何も変わらず、上記と同じ値のままです。部分文字列を追加することで、(-) の後のすべてを削除し、後で文字列を追加することができます。

助けてください。それは高く評価されます。

4

1 に答える 1