나는 다음과 같은 SQL 스크립트가 있습니다!T-SQL 다 대일 관계로 문자열을 분할 하시겠습니까?
Line 17 The multi-part identifier "T.data" could not be bound.
내가 또한 비 가입 버전을 시도하고 같은 오류가 발생했습니다 : 클릭 한 후
DECLARE @temp table (
ID int IDENTITY(1, 1),
data nvarchar(100)
)
INSERT INTO @temp (data) VALUES ('a,b,c')
INSERT INTO @temp (data) VALUES ('d,e,f')
SELECT *
FROM @temp AS T
INNER JOIN
(SELECT *
FROM dbo.__StringSplit(T.data, ',', T.ID)) AS S
ON T.ID = S.RefID
그리고에 실행, 나는이 가지고
SELECT T.ID, S.Item AS dataItem
FROM @temp AS T, dbo.__StringSplit(T.data, ',', T.ID) AS S
WHERE T.ID = S.RefID
...
W hat 내가 기대하는 것은 @ test.ID에서 ID를 가진 테이블을 가져와야하고 @ test.data의 각 쉼표로 구분 된 값은 자체 레코드로 분할되고 그 값은 dataItem 필드에 저장됩니다.
어떻게하면됩니까?
커서를 사용해야합니까?
나는 http://pastebin.com/f7dd6350f
감사에서 DBO .__ StringSplit 테이블 반환 함수 구현을 붙여했습니다!
여전히 교차 적용을 사용하지만 분할 문자열 기능을 내 대답의 링크로 대체하십시오. –