表結構錯誤:「子查詢返回多個值」與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