【问题标题】:Multiple subqueries - SQL Server telling me to use EXISTS?多个子查询 - SQL Server 告诉我使用 EXISTS?
【发布时间】:2010-12-10 22:51:29
【问题描述】:
SELECT SUBSTRING(datapath,1,5) 
  FROM batchinfo 
 WHERE rowid IN (select * 
                   from qvalues 
                  where rowid in (select rowid 
                                    from batchinfo 
                                   where datapath like '%thc%'))
GROUP BY SUBSTRING(datapath, 1, 5)
  HAVING COUNT(*) > 1

我收到了这个错误

消息 116,级别 16,状态 1,行 3 只能指定一个表达式 在子查询时的选择列表中 不与 EXISTS 一起引入。

有谁知道我做错了什么?

【问题讨论】:

    标签: sql sql-server tsql


    【解决方案1】:

    ...where rowid in (select * from qvalues... 我猜* 有问题。从qvalues 中指定应该与rowid 进行比较的特定列(就像您在第二个子选择中所做的那样);实际上,您是在告诉 SQL Server 将 rowid 与完整的行进行比较。

    【讨论】:

    • +1:IN 子句(在 SQL Server 中)仅支持评估两侧的一列。 MySQL 是我见过的唯一一个做元组的...
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-18
    • 1970-01-01
    • 2010-12-08
    • 1970-01-01
    • 2023-03-29
    • 1970-01-01
    相关资源
    最近更新 更多