私は、次のSQLスクリプトがあります!T-SQL多対1の関係に文字列を分割しますか?
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私が期待していたのは、@ test.IDのIDを持つテーブルを取得し、@ test.dataの各カンマ区切りの値をそれぞれのレコードに分割し、その値をdataItemフィールドに入れることでした。
どうすれば実現できますか?
カーソルを使用する必要がありますか?
は私がhttp://pastebin.com/f7dd6350f
おかげでDBO .__ StringSplitテーブル値関数の実装を貼り付けました!
あなたはまだクロス適用を使用しますが、スプリット文字列関数を私の答えのリンクから置き換えます。 –