sqlserver幾個好用的錶值函式和標量函式

2021-09-07 01:27:11 字數 2913 閱讀 6765

獲取逗號風格的字串中的某乙個

比如'1,2,4,5,6' 第三個就是4

create

function

[dbo

].[get_strarraystrofindex](

@str

nvarchar(max), --

要分割的字串

@split

varchar(10), --

分隔符號

@index

int--

取第幾個元素

)returns

varchar(1024)as

begin

declare

@location

intdeclare

@start

intdeclare

@next

intdeclare

@seed

intset

@str

=ltrim(rtrim(@str

))

set@start=1

set@next=1

set@seed

=len(@split)

set@location

=charindex(@split,@str)

while

@location

<>

0and

@index

>

@next

begin

set@start

=@location

+@seed

set@location

=charindex(@split,@str,@start

)

set@next

=@next+1

endif

@location=0

select

@location

=len(@str)+1--

這兒存在兩種情況:1、字串不存在分隔符號 2、字串中存在分隔符號,跳出while迴圈後,@location為0,那預設為字串後邊有乙個分隔符號。

return

substring(@str,@start,@location

-@start

)end

go

獲取逗號分隔的字串的個數

create

function

[dbo

].[get_strarraylength](

@str

nvarchar(max), --

要分割的字串

@split

varchar(10) --

分隔符號

)returns

intas

begin

declare

@location

intdeclare

@start

intdeclare

@length

intset

@str

=ltrim(rtrim(@str

))

set@location

=charindex(@split,@str)

set@length=1

while

@location

<>

0begin

set@start

=@location+1

set@location

=charindex(@split,@str,@start

)

set@length

=@length+1

endreturn

@length

endgo

按照某個符號分割字串 翻來一張表

create

function

[dbo

].[splitstringtotable

](

@string

nvarchar(4000), --

格式如:「1,2,3,4,」

@splitchar

nvarchar(10) --

分割的字元:「,」

) returns

@table

table(id varchar(100

))

asbegin

declare

@index

intset

@index=0

if@string

<>

''begin

ifright(@string,1)<>

@splitchar

set@string

=@string

+@splitchar

ifleft(@string,1)=

@splitchar

set@string

=stuff(@string, 1, 1, ''

)

endwhile

charindex(@splitchar,@string,@index) >

0begin

insert

into

@table

(id)

values (substring(@string, @index, charindex(@splitchar, @string

,

@index) -

@index

))

set@index

=charindex(@splitchar, @string, @index) +

1end

return

endgo

sqlserver幾個好用的錶值函式和標量函式

獲取逗號風格的字串中的某乙個 比如 1,2,4,5,6 第三個就是4 create function dbo get strarraystrofindex str nvarchar max 要分割的字串 split varchar 10 分隔符號 index int 取第幾個元素 returns v...

幾個好用的副詞

1.relatively rel t vli 相對的例如 relatively good 相對來說比較好 that cell phone is relatively nice looking 那台手機相對來說好看點 2.extremely k stri mli 相當的例如 this sofa is ...

幾個好用的vim外掛程式

1.winmanager 可將檔案瀏覽器 buffer列表整合在側邊欄,它依賴於bufexplorer 2.nerdtree 樹狀目錄外掛程式,比winmanager的檔案瀏覽更美觀。3.txtbrowser 純文字瀏覽,為純文字自動生成目錄樹側邊欄 taglist視窗 語法高亮等,用來看txt文件...