Я использовал 2 переменные с оператором SELECT
для каждой.
Мне сказали, что я могу оптимизировать свой запрос, используя JOIN
, чтобы выполнить запрос только один раз.
Мне удалось объединить утверждение в одно.Но он не использовал JOIN
, и в моем текущем запросе все еще есть 2 SELECT
операторов.
Текущий запрос:
BEGIN
DECLARE @EntityId int, @Country nvarchar(10), @OrganizationId int,
@Username nvarchar(100) = 'user1'
Set @OrganizationId = (SELECT BU.OrganizationId
FROM [Company].[Config].[BusinessUnit] BU
WHERE BU.EntityId = (SELECT BU.EntityId
FROM [Company].[PES].[EmployeeProfile] EP
LEFT JOIN Config.BusinessUnit bu on EP.EntityCode = BU.EntityCode
WHERE EP.Username = @Username))
IF(@OrganizationId = 3)
SET @Country = 'MS'
ELSE
SET @Country = 'SG'
SELECT @Country
END
Является ли мой текущий запросвопрос хорош, или его можно еще улучшить?Спасибо.
Предыдущий запрос:
BEGIN
DECLARE @EntityId int, @Country nvarchar(10), @OrganizationId int,
@Username nvarchar(100) = 'user1'
Set @EntityId = (SELECT BU.EntityId
FROM [Company].[PES].[EmployeeProfile] EP
LEFT JOIN Config.BusinessUnit bu on EP.EntityCode = BU.EntityCode
WHERE EP.Username = @Username)
Set @OrganizationId = (SELECT BU.OrganizationId
FROM [Company].[PES].[BusinessUnit] BU
WHERE @EntityId = BU.EntityId)
IF(@OrganizationId = 3)
SET @Country = 'MS'
ELSE
SET @Country = 'SG'
SELECT @Country
END