Sql server 在使用偏移量和先提取时定义不明确的列

Sql server 在使用偏移量和先提取时定义不明确的列,sql-server,inner-join,offset,Sql Server,Inner Join,Offset,上面的代码返回一个错误 但是,当我首先删除最后一行偏移量fetch时,它工作得很好 有人能帮忙查询吗?必须使用OFFSET和FETCH子句才能使用ORDER BY 因此,请使用: 要解决此问题,请尝试为相似的列指定不同的别名,例如: SELECT qplt.description, qplab.status_code, qplab.start_date, qplc.start_date, qplc.end_date FROM price_lists_dur qplab,

上面的代码返回一个错误

但是,当我首先删除最后一行偏移量fetch时,它工作得很好


有人能帮忙查询吗?

必须使用OFFSET和FETCH子句才能使用ORDER BY 因此,请使用:


要解决此问题,请尝试为相似的列指定不同的别名,例如:

SELECT 
  qplt.description,
  qplab.status_code,
  qplab.start_date,
  qplc.start_date,
  qplc.end_date
FROM  price_lists_dur qplab,
  PRICE_LISTS_Tbl qplt,
  PRICE_LIST_CHARGES qplc
WHERE qplt.price_list_id=qplab.price_list_id
AND qplt.price_list_id =qplc.price_list_id
ORDER BY qplab.status_code --(or the column you want)
OFFSET 10 ROWS  FETCH FIRST 40 ROWS ONLY

请发布您收到的错误。@RichBenner这是完全有效的t-sql。您没有ORDER BY,因此不明确。此外,您应该开始使用ANSI-92样式的联接,它们已经存在25年多了。-在ANSI-92 SQL标准中(超过25年前),旧样式的逗号分隔表列表样式被正确的ANSI
JOIN
语法所取代,因此不鼓励使用正确的
JOIN
。它已经存在20多年了。
SELECT 
  qplt.description,
  qplab.status_code,
  qplab.start_date,
  qplc.start_date,
  qplc.end_date
FROM  price_lists_dur qplab,
  PRICE_LISTS_Tbl qplt,
  PRICE_LIST_CHARGES qplc
WHERE qplt.price_list_id=qplab.price_list_id
AND qplt.price_list_id =qplc.price_list_id
ORDER BY qplab.status_code --(or the column you want)
OFFSET 10 ROWS  FETCH FIRST 40 ROWS ONLY
SELECT 
  qplt.description,
  qplab.status_code,
  qplab.start_date,
  qplc.start_date as qplc_start_date, --notice the alias
  qplc.end_date 
  FROM  
  price_lists_dur qplab,
  PRICE_LISTS_Tbl qplt,
  PRICE_LIST_CHARGES qplc
 WHERE 
  qplt.price_list_id = qplab.price_list_id
  AND qplt.price_list_id = qplc.price_list_id
  OFFSET 10 ROWS FETCH FIRST 40 ROWS ONLY