私は次のSQLスクリプトを持っています:
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
そして、!Executeをクリックした後、私はこれらを取得しました:
Line 17 The multi-part identifier "T.data" could not be bound.
非参加バージョンも試しましたが、同じエラーが発生しました。
SELECT T.ID, S.Item AS dataItem
FROM @temp AS T, dbo.__StringSplit(T.data, ',', T.ID) AS S
WHERE T.ID = S.RefID
..。
私が期待したのは、@ test.IDからのIDを持つテーブルを取得する必要があり、@ test.dataの各コンマ区切り値が独自のレコードに分割され、その値がdataItemフィールドに配置されることでした。
どうすればそれを達成できますか?
カーソルを使用する必要がありますか?
http://pastebin.com/f7dd6350fにdbo.__StringSplitテーブル値関数の実装を貼り付けました
ありがとう!