我有一個關於SQL的基礎知識。但我可能需要一些先進的幫助解決這個問題。SQL在同一列和表中的單個SELECT中設置不同的變量,不同的條件
我正在開發一個執行不同的SQL準備語句的API,現在我正試圖優化這些查詢。
目前我一個準備好的聲明中有來自同一個表中選擇多個SELECT語句,但每個人都有自己的條件,例如:
DECLARE
@DESCRIPTION_1 NVARCHAR(200)
, @DESCRIPTION_2 NVARCHAR(200)
, @DESCRIPTION_3 NVARCHAR(200)
SELECT @DESCRIPTION_1 = [DESCRIPTION] FROM [Objectives] WHERE [OBJECTIVE_ID] = '4E2DEA7B-025A-4958-8696-2D13EDD3E08E';
SELECT @DESCRIPTION_2 = [DESCRIPTION] FROM [Objectives] WHERE [OBJECTIVE_ID] = '81B9B7E5-A833-4C5A-9B73-CBACFB055404';
SELECT @DESCRIPTION_3 = [DESCRIPTION] FROM [Objectives] WHERE [OBJECTIVE_ID] = 'A065CF91-01C9-41A8-A326-A00402329833';
*這僅是我的查詢的濃縮版。原來這個樣子的:
SELECT
@OBJECTIVE_1_DESCRIPTION = [dbo].[Objectives].[OBJECTIVE_DESCRIPTION]
, @OBJ1_LVL = [dbo].[Objectives].[OBJECTIVE_LEVEL]
, @OBJ1_TARGET = [dbo].[Objectives].[OBJECTIVE_COMPETION_COUNT]
, @REWARD_1_CODE = [dbo].[Objectives].[OBJECTIVE_REWARD]
FROM [dbo].[Objectives]
WHERE [dbo].[Objectives].[OBJECTIVE_ID] = @OBJECTIVE1_ID;
有沒有什麼辦法可以結合本成一個單一的SELECT語句?
爲什麼不選擇'SELECT ... WHERE OBJECTIVE_ID IN ...'? –
@PanagiotisKanavos,那隻會讓所有3個DESCRIPTIONS具有相同的值。每個人都需要有一個獨特的價值。 –
你會得到3行每一個單一的值。您可以將其存儲在表值字段中,但使用查詢來獲得最終結果會更快,而不是將中間結果存儲在變量中 –