Sql 获取子查询返回的值超过1时出错。此查询中的错误是什么
您可能需要一个相关的子查询:Sql 获取子查询返回的值超过1时出错。此查询中的错误是什么,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,您可能需要一个相关的子查询: INSERT INTO [BOOnboardingStatus] (BusinessID, SectionID, SectionName, SubSectionID, SubSectionName, status, createdby, modifieddate,
INSERT INTO [BOOnboardingStatus]
(BusinessID,
SectionID,
SectionName,
SubSectionID,
SubSectionName,
status,
createdby,
modifieddate,
modifiedby,
source,
createddate)
SELECT contentid,
2,
'Additional Info',
'22',
'Add keywords',
(SELECT CASE
WHEN categoryname IS NOT NULL THEN 1
ELSE 0
END
FROM businesscategory
WHERE businessid IN(SELECT contentid
FROM businessmaster
WHERE isclaim = 1)
AND [primary] = 1),
1,
Getdate(),
0,
'BOD',
Getdate()
FROM businessmaster
WHERE isclaim = 1
编辑:
也许存在
做你想做的事。它肯定会消除错误:
SELECT contentid, 2, 'Additional Info', '22', 'Add keywords',
(SELECT CASE WHEN categoryname IS NOT NULL THEN 1
ELSE 0
END
FROM businesscategory bc
WHERE bc.businessid = bm.contentid AND
bc.[primary] = 1
),
1, Getdate(), 0, 'BOD', Getdate()
FROM businessmaster bm
WHERE isclaim = 1 ;
您只有一个子查询,错误消息非常漂亮clear@Pரதீப், 几乎正确,实际上有两个子查询…@ jARLH-罚款:/<代码> < /COD>操作符使我不考虑……我不确定,但是当存在(…)时不能使用<代码>情况吗?然后在<代码>状态< /代码>列中1个0个结束< /代码>?然后在“businesscategory”中的单个“businessid”上有多个“primary”标志。
SELECT contentid, 2, 'Additional Info', '22', 'Add keywords',
(CASE WHEN EXISTS (SELECT 1
FROM businesscategory bc
WHERE bc.businessid = bm.contentid AND
bc.[primary] = 1
)
THEN 1 ELSE 0
END),
1, Getdate(), 0, 'BOD', Getdate()
FROM businessmaster bm
WHERE isclaim = 1 ;