在SQL Server我有一個查詢,看起來像這樣(較大查詢的WHERE
條款的一部分)SQL Server從表鑄造
SELECT 1
WHERE TPR.GRDE_PK IN
(
SELECT CAST(String AS INT)
FROM dbo.Split_New(@GRADES, ',')
)
@Grades
等於'14,15' 和dbo.Split_New
是一個函數返回一個表,其中包含一個名爲String
的列,其中包含'14'和'15'。 TPR.GRDE_PK
類型爲INT
。當我嘗試執行此行時出現轉換錯誤,有誰能告訴我如何解決它?
這裏就是Split_New
函數看起來像(撰稿有人比我更熟練,所以我不明白這一切):
function [dbo].[Split_New] (
@StringToSplit nvarchar(4000),
@Separator varchar(128))
returns table as return
with indices as
(
select 0 S, 1 E
union all
select E, charindex(@Separator, @StringToSplit, E) + len(@Separator)
from indices
where E > S
)
select substring(@StringToSplit,S,
case when E > len(@Separator) then e-s-len(@Separator) else len(@StringToSplit) - s + 1 end) String
--,S StartIndex
from indices where S >0
你能後的功能? –
@Goat_CO已發佈 –