SQL 中將帶有分隔符號的字段分割分別插入新錶中

2022-09-14 13:33:07 字數 2179 閱讀 1205

好久沒有寫東西了,今天看到乙個園友的那個sql問題,就寫了乙個,放在這裡做個備份吧

以前也回答了乙個這種類似的問題,找了好久也沒有看到,特此做個記號

初始表:

table a 

id           type         

1            xi;hong;shi

2            bei;bei;

3            xihongshibeibei

分割後的表:

table b

id           type                 groups

1            xi          0

1     hong        1

1     shi        2

2            bei              0

2     bei        1

3            xihongshi     0

以上隨便給出一些資料

declare

@curid

int,

@groupcount

int,

@subname

nvarchar(50

),--

擷取出來的字段

@splitname

nvarchar(50

) --

被分號分割的字段

set@groupcount=0

begin

declare

cur

cursor

forselect

nameid

from

testname

open

curfetch

next

from

cur

into

@curid

while

@@fetch_status=0

begin

select

@splitname

=type 

from

a  whereid=

@curidif(

charindex('

;',@splitname

)>0)

begin

while

(charindex('

;',@splitname

)>0)

begin

select

@subname

=ltrim

(rtrim

(substring

(@splitname,1

,charindex('

;',@splitname)-

1)))

insert

into

b(id,type,groups)

values

(@curid

,@subname

,@groupcount

)set

@splitname

=substring

(@splitname

,charindex('

;',@splitname) +

1,len(

@splitname

))set

@groupcount

=@groupcount+1

endinsert

into

b(id,type,groups)

values

(@curid

,@splitname

,@groupcount

)end

else

begin

insert

into

b select

id,type,

0from

testname

whereid=

@curid

endfetch

next

from

cur

into

@curid

set@groupcount=0

endclose

curdeallocate

curend

能夠實現,但是要多長時間我沒有試驗過,就這樣,做個備份!

R如何匯入帶有分隔符號的檔案

read.table file,options tables arecool col 3 is right aligned 1600 col 2 is centered 12zebra stripes are neat 1 options 描述header 檔案第一行是否表明了變數名的邏輯值 sep...

sql 中的分隔符

1 通過分隔符可以將其中的內容作為乙個整體的字串進行處理。假設資料庫中有乙個表,名為user info,注意這個名字,user 和 info 中間存在乙個空格。如果直接寫如下查詢,會報錯,可能會提示 user 表不存在或者 user 附近有語法錯誤。select from user info 這時就...

PostgreSQL查詢帶有 符號的sql

第一次使用sql語句查詢帶有 符號的內容時 select a.from attribute a where a.name server.other.hostname and a.value like 發現查詢的結果是全部的結果,與預期的結果不同,後來發現like語句中 符號是代表任意字元的意思,可使...