表结构错误:“子查询返回多个值”与CASE
Customer
ID int not null,
Name varchar(100) null
查询:
SELECT ID,
(SELECT CASE WHEN (Name IS NULL AND Name <> '')
THEN CAST(1 AS BIT)
ELSE CAST(0 AS BIT) END
FROM Customer) AS IsNameNullOrWhitespace
这给了我“子查询返回多个值这是..”。为什么是这样?
...因为子查询返回的值超过1。 – Kermit 2013-03-07 18:31:30
该消息非常有启发性。您的第二个'SELECT'返回多个值 – niculare 2013-03-07 18:31:31
如果您的意思是“为什么> 1行返回?”,这取决于您拒绝共享的数据。如果您的意思是“为什么行>不允许?”,这是因为返回> 1行的子查询是一个RELATION,它必须连接到查询的其余部分;它不能用作标量值。 – 2013-03-07 18:33:31