SQL 서버에서 나는이 (더 크게 쿼리의 WHERE
조항의 일부)처럼 보이는 쿼리SQL 서버
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 게시판 –