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