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
--這裡展示的是多列的情況
1create
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...