作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试每 100 条记录搜索一次,因此第一个批量将是 1 到 100,第二个将是 101 到 200 等。
我也在使用连接来合并两个表。
当我执行查询时,我收到错误消息:The column 'ID' was specified multiple times for 'cte'.
这是我的查询:
WITH cte AS (
SELECT
ROW_NUMBER() OVER (
ORDER BY TableOne.Name
) AS ROW
, *
FROM
DatabaseNameOne
FULL JOIN DatabaseNameOne
ON DatabaseNameTwo.ID= DatabaseNameOne.ID
WHERE CONVERT(DATE,DatabaseNameOne.dateone) BETWEEN '2013-12-01' AND '2014-05-20'
)
SELECT
*
FROM
cte
WHERE
ROW BETWEEN '1' AND '100'
有人能告诉我我做错了什么吗?
我正在使用服务器 2008。我可以选择 1 到 100 条记录而不加入,但是当我加入一个表时,我得到这个错误
最佳答案
这是你的cte:
WITH cte AS (
SELECT ROW_NUMBER() OVER(ORDER BY TableOne.Name) AS ROW,
*
FROM DatabaseNameOne FULL JOIN
DatabaseNameOne
ON DatabaseNameTwo.ID = DatabaseNameOne .ID
WHERE convert(date, DatabaseNameOne.dateone) between '2013-12-01' and '2014-05-20'
)
您正在将一个表与其自身连接并使用 *
-- 所有列都是重复的。即使表不同,join
也是在 ID
字段上,因此该列将被复制。 CTE/子查询/表不能有重名? SQL Server 如何知道您在引用中指的是哪一列?
相反,您需要从join
中列出您想要的特定列。
关于sql - 如何一次加载特定行 100,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23759839/
我是一名优秀的程序员,十分优秀!