Я уже некоторое время использую MySQL, но в настоящее время я изучаю SQL Server и различия в нем.
В MySQL я использовал оператор присваивания: = как способ уменьшить объем написанного кода.Возьмите этот простой пример:
SELECT
ps.Person_Name,
@Sales := (SELECT COUNT(*) From Sales sl Where sl.Sale_Person = ps.Person_ID) as Person_Sales,
@Target := (SELECT st.Sales_Target From Targets tg Where tg.Target_Person = ps.Person_ID) as Person_Target,
(IF(@Sales < @Target, 'You Suck', 'Well Done')) as Sales_Status
From People ps
Идея в том, что я могу сместить подзапросы, которые составляют @Sales и @Target, и использовать значения переменных в операторе IF для генерации Sales_Status для каждого сотрудника.
Я пытался повторить ту же ситуацию в SQL Server, но безуспешно.Я много читал о переменных и искал в Интернете, но я не нашел ничего, что продемонстрировало бы, как можно воссоздать эту ситуацию.
Мои вопросы:
- Возможно ли это вSQL Server и если да, то как?
- Является ли этот метод оптимальным или есть какие-либо риски?
- Существуют ли более эффективные или более / более безопасные способы сделать это?
У меня хорошее понимание SQL, но я ни в коем случае не эксперт.Заранее спасибо всем, кто может пролить свет и совет.