MSSQL 指定分隔符號 生成資料集

2022-05-13 13:55:32 字數 2254 閱讀 4093

declare

@xml

varchar(max)=

'磨毛:1

縮率:2

幹磨:3

溼摩:4

水洗牢度:5

手感:6

防水:7

ph:8

日曬:9

'set

@xml='

'+char(10)+''

+replace(replace(@xml,char(10),''+

char(13)+

''),'

:','

')+''+

char(10)+''

begin

trydeclare

@xml2 xml=

@xml

select

*from

(

select t.v.query('

.').value('

/r[1]/v[1]

','varchar(50)

') as

gy, t.v.query('.

').value('

/r[1]/v1[1]

','varchar(50)

') as

gyyq

from

@xml2.nodes('

/root/r

')t(v)) a

pivot(

max(gyyq) for gy in ([

磨毛],[

縮率],[

幹磨],[

溼摩],[

水洗牢度

],[手感

],[防水

],[ph

],[日曬

])) as

pvtend

trybegin

catch

if@@error

>

0select

nullas[

磨毛],nullas[

縮率],nullas[

幹磨],nullas[

溼摩],nullas[

水洗牢度

],nullas[

手感],nullas[

防水],nullas[

ph],nullas[

日曬],error_message()

endcatch

--這裡展示的是多列的情況

1

create

function dbo.fn_getsplitdata(@data

nvarchar(max),@splitchar

varchar(50))2

returns

table3as

4return5(

6with roy as

7 (select col2=

cast(left(@data,charindex(@splitchar,@data

+@splitchar)-

1) as

varchar(max)),split=

cast(stuff(@data

+@splitchar,1,charindex(@splitchar,@data

+@splitchar),'') as

varchar(max

)) 8

union

all9

select col2=

cast(left(split,charindex(@splitchar,split)-

1) as

varchar(max)),split=

cast(stuff(split,1,charindex(@splitchar,split),'') as

varchar(max

)) 10

from roy where split>

''11)12

select col2 as col from

roy13

1415

/*select b.col

*/16

/*from

*/17

/*(select convert(xml,''+replace(@data,@splitchar,'

')+'

') as col)a

*/18

/**/19)

20go

指定分隔符,輸出指定的段(2016)

根據指定的分隔符分隔字串,並輸出指定的段。如果指定的段超過分隔的段數,輸出 null 舉例 aaa?bbb?ccc?2 字串為 aaa?bbb?ccc?分隔符為 指定的段為 2 字串分割為 aaa bbb ccc共三段,第2段字串為 bbb 輸入分隔字串長度小於128個字元,指定的段是乙個正整數。輸...

sql server 函式根據分隔符號拆分字元

createfunction dbo fun splitstr originalstr varchar 8000 要分割的字串 split varchar 100 分隔符號 returns temp table result varchar 100 asbegin declare result as...

hive建立table時指定分隔符

由於很多資料在hadoop平台,當從hadoop平台的資料遷移到hive目錄下時,由於hive預設的分隔符是 u0001,為了平滑遷移,需要在建立 時指定資料的分割符號,語法如下 create table test uid string,name string row format delimite...