我正在创建一个带有WHERE CASE WHEN语句的SQL查询.我做错了什么并且得到了错误.
我的SQL语句就像
DECLARE @AreaId INT = 2
DECLARE @Areas Table(AreaId int)
INSERT INTO @Areas SELECT AreaId
FROM AreaMaster
WHERE CityZoneId IN (SELECT CityZoneId FROM AreaMaster WHERE AreaId = @AreaID)
SELECT *
FROM dbo.CompanyMaster
WHERE AreaId IN
(CASE WHEN EXISTS (SELECT BusinessId
FROM dbo.AreaSubscription
WHERE AreaSubscription.BusinessId = CompanyMaster.BusinessId)
THEN @AreaId
ELSE (SELECT [@Areas].AreaId FROM @Areas)
END)
Run Code Online (Sandbox Code Playgroud)
我收到错误了
消息512,级别16,状态1,行11
子查询返回的值超过1.当子查询跟随=,!=,<,<=,>,> =或子查询用作表达式时,不允许这样做.
请帮助成功运行查询.我的逻辑是检查AreaId每行的条件(语句).
我想只选择行
AreaSubscription特定区域@AreaId AreaSubscription没有订阅条目然后评估AreaId中(SELECT [@Areas].AreaId FROM @Areas)我很困惑MonthGenitiveNames和MonthNames.有两个月的名称作为两者的值,所以MonthGenitiveNames和之间有什么区别MonthNames.
另一个问题是为什么月份有空白?如果你看两者的值都有空白值.将空白添加到月份名称的原因是什么?