У меня такой запрос в моем ms sql.Как сделать запрос MS SQL Server быстрее?
SELECT
OdeaMainDataBase.dbo.ItemChoicesTable.*,
CASE
WHEN EXISTS(SELECT * FROM StudentTestTablefromRemark
WHERE StudID = @studId AND ExamID = @examId
AND ItemBankID = @itemBankId
AND ChoiceID = OdeaMainDataBase.dbo.ItemChoicesTable.ChoiceID)
THEN 'True'
ELSE 'False'
END AS isAnswered
FROM
OdeaMainDataBase.dbo.ItemChoicesTable
WHERE
ItemBankID = @itemBankId
Я наблюдаю, что CASE
заявление, которое я сделал вызывает мой запрос, чтобы работать медленно. Когда я удаляю этот CASE
, он работает быстро, но мне нужен этот случай для моего вывода.
Вот структура Я хочу, чтобы отобразить
Пункт Выбор Таблица
ItemBankID ChoiceID ChoiceLetter
--------------------------------------
1 1 A
1 2 B
1 3 C
2 4 A
2 5 B
2 6 C
Студента Ответы Таблица
ItemBankID ChoiceID ChoiceLetter StudentId
-------------------------------------------------
1 2 B 123
2 6 C 123
Желаемая Выход
ItemBankID ChoiceID ChoiceLetter IsAnswered
----------------------------------------------------
1 1 A False
1 2 B True
1 3 C False
2 4 A False
2 5 B False
2 6 C True
Я хочу достичь этого выхода без замедления моей программы.
Любая идея будет со мной.
Спасибо большое
Спасибо так много вы спасли мой день :) –