Sql server 2008 r2 SQL Server介于和或语句之间
我想在SQL Server中使用以下两个子句:Sql server 2008 r2 SQL Server介于和或语句之间,sql-server-2008-r2,Sql Server 2008 R2,我想在SQL Server中使用以下两个子句: SELECT ROW_NUMBER() OVER (ORDER BY date_time ASC) AS RowNumber, <column_name1>, <column_name2>, <column_name3>, date_time from <table name> where <column name1> = 'as
SELECT ROW_NUMBER() OVER (ORDER BY date_time ASC) AS RowNumber,
<column_name1>,
<column_name2>,
<column_name3>,
date_time
from <table name>
where <column name1> = 'assdf'
or RowNumber between 1 and 10
但这会产生一个错误。此查询有什么问题?请尝试使用:
或
您试图在同一查询中引用RowNumber列,而不是在外部查询中引用它。试试这个:
select * from
(
SELECT ROW_NUMBER() OVER (ORDER BY date_time ASC) AS RowNumber,
<column_name1>,
<column_name2>,
<column_name3>,
date_time
from <table name>
) tab
where <column name1> = 'assdf' or
RowNumber between 1 and 10
这会有帮助的
select * from
(
SELECT ROW_NUMBER() OVER(ORDER BY date_time ASC)AS RN,
<column_name1>,
<column_name2>,
<column_name3>,
date_time
from <table name>
where <column name1> = 'assdf'
)
where RN between 1 and 10
作为RowNumber,我认为AS->AS RowNumber之前应该有一个空格为什么要使用Row_number,因为您需要1-10行,请从表中选择top 10*,其中class='assdf'按日期排序\u时间asc是否只需要第1到10行。。?然后从表中选择前10个*,其中,='assdf'按日期排序\u时间asc请尝试以下操作。。
SELECT <column_name1>,
<column_name2>,
<column_name3>,
date_time FROM
(
SELECT ROW_NUMBER() OVER(ORDER BY date_time ASC)AS RN,
<column_name1>,
<column_name2>,
<column_name3>,
date_time
from <table name>
where <column name1> = 'assdf'
) As S
WHERE RN BETWEEN 1 and 10
select * from
(
SELECT ROW_NUMBER() OVER (ORDER BY date_time ASC) AS RowNumber,
<column_name1>,
<column_name2>,
<column_name3>,
date_time
from <table name>
) tab
where <column name1> = 'assdf' or
RowNumber between 1 and 10
select * from
(
SELECT ROW_NUMBER() OVER(ORDER BY date_time ASC)AS RN,
<column_name1>,
<column_name2>,
<column_name3>,
date_time
from <table name>
where <column name1> = 'assdf'
)
where RN between 1 and 10