sql - 出现错误“选择列表中只能指定一个表达式...”
问题描述
我正在尝试使用以下代码向视图添加一列:
SELECT ';' + CONTEXT as DriverNotes,
(STUFF((SELECT CustomerID FROM Notes E2 WHERE E2.CustomerID IN (Notes.CustomerID)
FOR XML PATH(''), TYPE, ROOT).value('root[1]','nvarchar(5)'),1,0,'')) as CustomerID FROM NOTES
就其本身而言,它工作得很好。但是,当我在 View 中运行它时,出现以下错误:
“当不使用 EXISTS 引入子查询时,选择列表中只能指定一个表达式。”
我意识到这里的代码试图调用两列,这就是给我错误的原因,但我只想要一个,那就是 CONTEXT。我需要它与 Notes.CustomerID 相关联,但查询中没有出现该列。
我对此还是很陌生,所以任何帮助将不胜感激。
解决方案
检查此查询。我认为这就是你想要的:
SELECT Notes.CustomerId,
STUFF(
(SELECT ';' + CONTEXT FROM Notes E2
WHERE E2.CustomerId = Notes.CustomerId
FOR XML PATH ('')), 1, 1, ''
) DriverNotes
FROM Notes /*Probably it should be Customer table */
GROUP BY Notes.CustomerId
推荐阅读
- javascript - VueJS - DOM 模板解析和自定义元素
- spring - springframework.jdbc.core.JdbcTemplate 准备好的语句
- javascript - Ajax 函数没有被异步调用
- android - 如何修复“Android 软键盘不返回 KeyCode”
- google-apps-script - Google Sheet App Script - 按维度将值分散到单独的选项卡中
- php - Laravel/Symfony:响应下载文件未返回正确大小
- java - java.security.InvalidKeyException
- c++ - C++ 使用给定的构造函数在循环中创建对象
- javascript - 在浏览器中渲染文件
- javascript - 如何在使用 react-reveal/makeCarousel 制作的轮播上停止自动播放