単一の列にカンマ区切り値を格納を停止します。 CID
とE_LIST
の組み合わせごとに個別の行があります。データ検索は
今すぐ戻って質問に来て、あなたがこの
SELECT *
FROM TABLE1
WHERE EID IN (SELECT cs.split_items
FROM TABLE2 t2
CROSS apply Udf_splitstring(t2.E_LIST, ',') cs
WHERE t2.CID = 'C01')
がここSplit strings the right way – or the next best wayから1を作成して行うために、分割文字列関数を必要とする方がはるかに簡単になります。
私は、集計テーブル方法
CREATE FUNCTION dbo.Udf_splitstring
(
@List NVARCHAR(MAX),
@Delimiter NVARCHAR(255)
)
RETURNS TABLE
WITH SCHEMABINDING AS
RETURN
WITH cteTally(N) AS
(
SELECT TOP (DATALENGTH(ISNULL(@List,1))+1) Number-1
FROM dbo.Numbers ORDER BY Number
),
cteStart(N1) AS
(
SELECT t.N+1
FROM cteTally t
WHERE (SUBSTRING(@List,t.N,1) = @Delimiter OR t.N = 0)
)
SELECT split_items = SUBSTRING(@List, s.N1,
ISNULL(NULLIF(CHARINDEX(@Delimiter, @List, s.N1), 0) - s.N1, 8000))
FROM cteStart AS s;
意味がありません、例外はありますか?私は結果が得られないことを願っています。 Bcoz E_LISTには、カンマでデータが含まれています。分割して確認する必要があります。 – User
@Srinath、エラーは発生しませんがデータを取得しません。 –