|
あくまで感覚ですが
TBL NAME CODE A 1,2 B 3
SELECT * FROM TBL AS TBL1 LEFT OUTER JOIN ( ---------- NAME = 'A' の時 1,2 NAME = 'B' の時 3 の列テーブルができればOKなのですが ---------- ) AS TBL2 ON TBL2.NAME = TBL1.NAME ちなみに2016ですが、STRING_SPLIT は使用できませんでした。 なので、以下のようなファンクションを作っています。
ALTER FUNCTION [dbo].[ufnStringSplit]( @Input AS NVARCHAR(MAX) ) RETURNS @Output TABLE(Value NVARCHAR(MAX)) AS BEGIN IF @Input IS NOT NULL BEGIN DECLARE @Start INT = 1, @End INT = CHARINDEX(',', @Input), @Len INT = LEN(@Input); WHILE @End > 0 BEGIN INSERT INTO @Output (Value) VALUES(SUBSTRING(@Input, @Start, @End - @Start)); SELECT @Start = @End + 1, @End = CHARINDEX(',', @Input, @Start); END INSERT INTO @Output (Value) VALUES(SUBSTRING(@Input, @Start, @Len + 1 - @Start)); END RETURN; END
|