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错误,如明智的 -
子查询返回的值超过1 . 当子查询遵循=,!=,<,<=,>,> =或子查询用作表达式时,不允许这样做 .
3 回答
使用这样的子查询时,每条记录的结果集中只能有一条记录 . 显然你的表Split有多个记录 .
使用连接而不是子查询 . 或者通过将它连接到子查询中的schools表或者仅拉取Max或min记录或在子查询中创建某种where子句以仅获取一条记录来使其成为相关子查询 . 没有看到表结构和数据很难确切地确定要做什么 .
那是因为
Select value from [dbo].Split
正在返回多个值 .我认为你的split函数将返回一个表,你不能在给定的例子中单行捕获split函数将返回以下三行,这是不可能在单行中捕获
我认为你应该缺少在split函数中传递一些变量
请在
Select value from [dbo].Split
传递一些东西