sql-server - 我收到“')' 附近的语法错误”
问题描述
我在存储过程中编写了这个查询并从 C# 调用它。它工作正常。
WITH SelectedRows AS
(
SELECT
ROW_NUMBER() OVER (ORDER BY InnerDataTable.DepotCode ASC) AS RowNo,
InnerDataTable.*
FROM
(SELECT DISTINCT
Date, No, Person.Title AS PersonTitle, Person.Name AS PersonName,
(... some other columns from tables ...)
FROM
SellInvoice
JOIN
SellInvoiceDetail AS Detail ON Detail.SellInvoiceGuid = SellInvoice.Guid
JOIN
Depot ON Depot.Guid = SellInvoice.DepotGuid
JOIN
Item ON Item.Guid = Detail.ItemGuid
( ... and something else... )) AS InnerDataTable
WHERE
InnerDataTable.Company = '391891BA-DCC9-4B76-9588-9C97E0C2071A'
AND InnerDataTable.Branch = 'A2C9055A-7DDD-41AF-9A2F-DFC42D6C2B14'
)
但是当我在 SQL Server Management Studio 中对其进行测试时,执行失败并显示错误:
')' 附近的语法不正确
它指的是最后一行..那个错误是什么..?
解决方案
您缺少 CTE 中的实际 SELECT 。有关如何使用 CTE(公用表表达式)的更多指导,请参阅Microsoft 文档。
WITH SelectedRows AS
(
SELECT
ROW_NUMBER() OVER (ORDER BY InnerDataTable.DepotCode ASC) AS RowNo,
InnerDataTable.*
FROM
(SELECT DISTINCT
Date, No, Person.Title AS PersonTitle, Person.Name AS PersonName,
(... some other columns from tables ...)
FROM
SellInvoice
JOIN
SellInvoiceDetail AS Detail ON Detail.SellInvoiceGuid = SellInvoice.Guid
JOIN
Depot ON Depot.Guid = SellInvoice.DepotGuid
JOIN
Item ON Item.Guid = Detail.ItemGuid
( ... and something else... )) AS InnerDataTable
WHERE
InnerDataTable.Company = '391891BA-DCC9-4B76-9588-9C97E0C2071A'
AND InnerDataTable.Branch = 'A2C9055A-7DDD-41AF-9A2F-DFC42D6C2B14'
)
SELECT * -- Added
FROM SelectedRows -- Added
也许您只是没有在上面的查询中包含此内容,但这似乎是 SQL ServerIncorrect syntax near ')'
在最后一行返回的一个非常可靠的理由。
推荐阅读
- java - Spring Boot 变量重命名问题(Hibernate)
- r - 如何处理在 R 中读取 JSON 文件时发生的嵌套 list()?
- javascript - 使用节点运行 newman (Postman) 集合时如何处理异步调用?
- javascript - 在提交之前建立一个数组
- tpm - 如何在不需要另一个 NvIndex 的情况下保护 NvIndex 不被重新创建
- c# - Sqlite 错误:没有这样的表 main.table_name 存在
- c++ - 在多级继承c ++之间进行强制转换和释放
- python - “scipy.misc”没有属性“imsave”
- python-3.x - 替换列表列表中的列表,仅给出零
- python - Pyenv: `python3.6 -m venv venv` 使用 Python 3.7.4 创建环境