У меня есть две таблицы, называемые genproductstoreindex и QAT_ListElid2. Я присоединился к левому внешнему соединению, но его выполнение занимает очень много времени.
SELECT genproductstoreindex.[ElID]
,CASE
WHEN QAT_ListElid2.LeftTSMKEY IS NULL
THEN genproductstoreindex.[TSMKEY]
ELSE QAT_ListElid2.LeftTSMKEY + RightTSMKEY
END
,[Numerical]
,[StringField]
,[DateField]
,[TableLevel]
,[TsmPath]
FROM genproductstoreindex
LEFT OUTER JOIN QAT_ListElid2 ON genproductstoreindex.ListElid = QAT_ListElid2.ListElid
Чтобы оптимизировать левое внешнее соединение с помощью оператора case, я заменил приведенный ниже код, но данные выглядят неверно. Пожалуйста, помогите мне в этом.
DECLARE @lefttsmkey NVARCHAR(30)
SET @lefttsmkey = NULL
IF @lefttsmkey IS NULL
BEGIN
SELECT genproductstoreindex.[ElID]
,genproductstoreindex.[TSMKEY]
,[Numerical]
,[StringField]
,[DateField]
,[TableLevel]
,[TsmPath]
FROM genproductstoreindex
LEFT OUTER JOIN QAT_ListElid2 ON genproductstoreindex.ListElid = QAT_ListElid2.ListElid
END
ELSE
BEGIN
SELECT genproductstoreindex.[ElID]
,QAT_ListElid2.LeftTSMKEY + RightTSMKEY AS [TSMKEY]
,[Numerical]
,[StringField]
,[DateField]
,[TableLevel]
,[TsmPath]
FROM genproductstoreindex
LEFT OUTER JOIN QAT_ListElid2 ON genproductstoreindex.ListElid = QAT_ListElid2.ListElid
END