sql-server - SQL Server:存储过程的语法错误
问题描述
我有一个简单的查询,例如:
SELECT
1 AS [Result],
'success' AS [ResultText]
IF (@TaskStatusName = 'COMPLETED')
SELECT
5 AS [ToNotifiedResult],
SELECT @TechniciansEmail = COALESCE(@TechniciansEmail + ';', '') + [Username]
FROM Employee AS [E]
INNER JOIN TaskNotification AS [TN] ON TN.EmpKey = E.EmpKey AND TaskId = '64BB7072-62A5-4C8E-A385-3B3DCB8BD1CA' AS [ToNotified]
问题出在最后一个选择中,它只是说
“选择”附近的语法不正确
并且“选择”字被标记为红色
我尝试用括号将该选择分组为:
,(SELECT @TechniciansEmail = COALESCE(@TechniciansEmail + ';', '') + [Username] FROM Employee AS [E]
INNER JOIN TaskNotification AS [TN] ON TN.EmpKey = E.EmpKey AND TaskId = '64BB7072-62A5-4C8E-A385-3B3DCB8BD1CA' AS [ToNotified])
但是现在@TechniciansEmail
变量被标记为红色,我得到了
@TechniciansEmail 附近的语法不正确。期待 '(' 或 SELECT
我真的不知道我做错了什么,有什么想法吗?
解决方案
这一行:
SELECT @TechniciansEmail = COALESCE(@TechniciansEmail + ';', '') + [Username]
要么完全不合适,要么尝试创建子查询,在这种情况下,它需要放在括号中,并有自己的 FROM 子句。
实际上,根据您问题的后半部分,您似乎应该将此行作为自己的单独查询,因为它填充了一个变量:
SELECT
@TechniciansEmail = COALESCE(@TechniciansEmail + ';', '') + [Username]
FROM
Employee AS [E]
INNER JOIN
TaskNotification AS [TN] ON TN.EmpKey = E.EmpKey AND TaskId = '64BB7072-62A5-4C8E-A385-3B3DCB8BD1CA'
推荐阅读
- php - 使用分类字段 (ACF) 获取产品类别 (Woocommerce) 以过滤循环
- java - HTMlUnit - getByXPath - 从属性列表中获取值
- amazon-web-services - 如何调试 Amazon S3 生命周期规则
- sharepoint-online - 需要在通过 SPFX 右键单击任何项目时使用上下文菜单实现流畅的 UI 详细信息列表
- datetime - 如何将 XML 日期转换为有效的日期时间?
- google-sheets-api - 通过 API 复制没有谷歌驱动器访问的谷歌电子表格
- sql - 表上授予选择的postgres语法错误
- python - 未找到任何参数的“编辑费用”的反向。尝试了 1 种模式:['edit\\-expense/(?P
[0-9]+)$'] - Django - swift - 每次调用时都想发出不同的音调
- javascript - 如何在 vue-class-component 中使用动态组件