【问题标题】:"Subquery returned more than 1 value" error“子查询返回超过 1 个值”错误
【发布时间】:2013-10-24 18:00:19
【问题描述】:
SELECT [schoolname] AS combinationschools, 
       CASE 
         WHEN [schoolname] LIKE '%/%' THEN (SELECT value 
                                            FROM 
         [dbo].[Split]('/', '#6/#9E/#9M')) 
       END          AS schoolname 
FROM   [dbo].[schools]; 

我遇到了 q sql 错误,就像 wise-

子查询返回超过 1 个值。这是不允许的,当 子查询遵循 =、!=、、>= 或当子查询用作 一个表达式。

【问题讨论】:

    标签: sql sql-server


    【解决方案1】:

    那是因为Select value from [dbo].Split 返回的值不止一个。

    【讨论】:

      【解决方案2】:

      当您使用这样的子查询时,每条记录在结果集中只能有一条记录。显然,您的表 Split 有不止一条记录。

      使用联接而不是子查询。或者通过将其连接到子查询中的学校表来使其成为相关子查询,或者仅提取 Max 或 min 记录,或者在 thw 子查询中创建某种 where 子句以仅获取一条记录。如果不查看表结构和数据,就很难确切地确定要做什么。

      【讨论】:

        【解决方案3】:

        我认为您的拆分函数将返回一个在给定示例中无法在单行中捕获的表拆分函数将返回以下三行,而该表无法在单行中捕获

        #6
        #9E
        #9M 
        

        我认为您应该缺少在拆分函数中传递一些变量

        请在Select value from [dbo].Split传递一些东西

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多