とのストアドプロシージャがparameter1
ありますparameter2
ストアド プロシージャ内で、一時テーブルを作成しています
CREATE TABLE [dbo].#Temp
(
[Item_ID] [int] NOT NULL,
[Item] [nvarchar](255) NULL,
[FIELD_1] [float] NULL,
[FIELD_2] [float] NULL
CONSTRAINT [PK___Temp] PRIMARY KEY CLUSTERED
(
[Item_ID] ASC
)
次に、一時テーブルに値を挿入します。
INSERT INTO [dbo].#Temp(
[Item_ID]
,[Item]
,[FIELD_1]
,[FIELD_2]
)SELECT DISTINCT
1
,'Item Description'
,(SELECT Field_Name FROM NewTable
WHERE Item_type = 'Middle'
AND param1 = @Parameter1
AND param2 = @Parameter2
AND STAFF_Type = 'Staff1'
AND Entity_Type = 'Entity1'
)
,(SELECT Field_Name FROM NewTable
WHERE Sch_type = 'High'
AND param1 = @Parameter1
AND param2 = @Parameter2
AND STAFF_Type = 'Staff1'
AND Entity_Type = 'Entity1'
)
INSERT INTO [dbo].#Temp(
[Item_ID]
,[Item]
,[FIELD_1]
,[FIELD_2]
)SELECT DISTINCT
2
,'Another Item Description'
,(SELECT Field_Name FROM NewTable
WHERE Item_type = 'Middle'
AND param1 = @Parameter1
AND param2 = @Parameter2
AND STAFF_Type = 'Staff1'
AND Entity_Type = 'Entity2'
)
,(SELECT Field_Name FROM NewTable
WHERE Sch_type = 'High'
AND param1 = @Parameter1
AND param2 = @Parameter2
AND STAFF_Type = 'Staff1'
AND Entity_Type = 'Entity2'
)
などなど。次に、一時テーブルから値を選択し、一時テーブルをドロップします。
私は UDF を使用したことがなく、UDF を使用して単純にリファクタリングできるかどうか疑問に思っています。例や提案は大歓迎です。