Sql 如何从表中的最大值自动递增我自己的结果列?
如何组合这两个值,以便无论第一个查询返回什么值,我都可以使用该值并从中自动递增,以某种方式组合这两个值(尝试嵌套它们,但不成功),还是需要Sql 如何从表中的最大值自动递增我自己的结果列?,sql,sql-server,sql-server-2008,tsql,Sql,Sql Server,Sql Server 2008,Tsql,如何组合这两个值,以便无论第一个查询返回什么值,我都可以使用该值并从中自动递增,以某种方式组合这两个值(尝试嵌套它们,但不成功),还是需要 声明一个变量 获取我的最大id值 让我的变量等于这个 然后将该值/变量放在我的第二个语句中 像 select MAX (cast (id as numeric)) from table --whatever value it may return select (row_number () over (order by id)) as Number f
select MAX (cast (id as numeric)) from table --whatever value it may return
select
(row_number () over (order by id)) as Number from table --will start at 1
试试这个:
select
(row_number () over (order by id) + (declared_max_value)) as Number from table
或者这个:
WITH CTE as
(SELECT max(Field) FROM Table)
SELECT WhatYouWant, cte.m FROM Table2
INNER JOIN CTE ON 0=0
试试这个:
declare @maxValue int
select @maxValue = select max(cast (id as integer)) from table
declare @uaerystring varchar(max)
select @queryString =
'(row_number () over (order by id) + '
+ @maxValue +
')as Number from table'
Execute(@queryString)
工作示例:你能举例说明你想要的结果是什么吗?例如,不管我的最大值是什么(未知),假设它是900,那么每一行都会从该值开始递增;如果返回了5行,则第1列(数字列)将显示-->901902904905COOL。。非常感谢!
declare @maxValue int
select @maxValue = select max(cast (id as integer)) from table
declare @uaerystring varchar(max)
select @queryString =
'(row_number () over (order by id) + '
+ @maxValue +
')as Number from table'
Execute(@queryString)
SELECT
Seed.ID + ROW_NUMBER() OVER (order by T.ID) as Number,
T.ID
FROM
T CROSS JOIN
(SELECT MAX(ID) AS ID FROM T) AS Seed
DECLARE @T Table (ID int , Value Varchar(20))
INSERT INTO @T (ID, Value)
VALUES (50, 'Value1'), (500, 'Value1'), (100, 'Value1'), (50, 'Value2'), (100, 'Value2'),(500, 'Value2')
;with CTE (Value, ID, rn)
AS
(
SELECT Value, MAX(ID), rn = ROW_NUMBER() OVER (ORDER BY Value ASC)
FROM
@T
GROUP BY Value
)
SELECT * FROM CTE