錶值函式返回的是一張表。
情況:把傳入的字串按指定分隔符轉換成陣列
理解:把字串打散,逐個插入表,這個表就是需要的資料
create呼叫:function
[dbo
].[split](
@sql
varchar(8000
),
@splits
varchar(10))
returns
@temp
table (a varchar(100
))as
begin
declare
@iint
set@sql
=rtrim(ltrim(@sql
))
set@i
=charindex(@splits,@sql
)
while
@i>=
1begin
insert
@temp
values(left(@sql,@i-1
))
set@sql
=substring(@sql,@i
+1,len(@sql)-@i)
set@i
=charindex(@splits,@sql
)
endif
@sql
<>
''insert
@temp
values (@sql
)
return
end
select結果:*from split('
1,20,13,4,5
',',
')
SQL錶值函式和標量值函式的區別
原文 sql錶值函式和標量值函式的區別 寫sql儲存過程經常需要呼叫一些函式來使處理過程更加合理,也可以使函式復用性更強,不過在寫sql函式的時候可能會發現,有些函式是在錶值函式下寫的有些是在標量值下寫的,區別是錶值函式只能返回乙個表,標量值函式可以返回基型別。舉個例子,當使用者刪除乙個節點的時候,...
簡述錶值函式
錶值函式 建立示例表 create table t name varchar 20 go insert into t select a union select b go 內嵌錶值函式 語法 create function 函式名 引數列表 returns table as return t sql...
Sqlserver錶值函式
實現錶值函式很簡單 下面是乙個不帶輸入引數的錶值函式 createfunctiontvpoints returnstable as return select fromtb users 這個錶值函式數查詢所有使用者表的資料 對於多語句錶值函式,在 begin.end 語句塊中定義的函式體包含一系列 ...