sql“选择最大值”查询
我有一个名为table_name的表,大致如下sql“选择最大值”查询,sql,select,join,Sql,Select,Join,我有一个名为table_name的表,大致如下 +----+-----------+ | ID | title | | 1 | title 1 | | 2 | title 2 | | ...| ......... | | ...| ......... | | n | title n | +----+-----------+. 我需要一个返回这个结果的查询 +------+-----------+ | n+1 | title 1 | | n+1 | title
+----+-----------+
| ID | title |
| 1 | title 1 |
| 2 | title 2 |
| ...| ......... |
| ...| ......... |
| n | title n |
+----+-----------+.
我需要一个返回这个结果的查询
+------+-----------+
| n+1 | title 1 |
| n+1 | title 2 |
| ... | ......... |
| ... | ......... |
| n+1 | title n |
+------+-----------+
n+1是从表\u名称中选择maxID
我该怎么做 只需将子查询添加到选择列表:
select (select max(ID) + 1 from tablename), title
from tablename
只需将子查询添加到选择列表:
select (select max(ID) + 1 from tablename), title
from tablename
窗口函数
SELECT MAX(ID) OVER() + 1, title
FROM table_name
窗口函数
SELECT MAX(ID) OVER() + 1, title
FROM table_name
您可以将此max ID选择为变量,然后只需在选择中使用它:
DECLARE @maxId INT = (SELECT MAX(ID) FROM [dbo].[table1]);
SELECT @maxId, t.title, t.column2, t.column3 ... from [dbo].[table2] t
您可以将此max ID选择为变量,然后只需在选择中使用它:
DECLARE @maxId INT = (SELECT MAX(ID) FROM [dbo].[table1]);
SELECT @maxId, t.title, t.column2, t.column3 ... from [dbo].[table2] t
对于Mysql
select (1+max(ID)) as ID ,title
from table_name;
对于Mysql
select (1+max(ID)) as ID ,title
from table_name;
标记您的RDBMS。在所需的输出中,n+1是指每一行都应该有相同的较高ID,还是应该有它的旧ID加上maxold ID?后者似乎更有意义,但如果你解释你想做什么,可能会有所不同。标记你的RDBMS。在所需的输出中,n+1是指每一行都应该有相同的较高ID,还是应该有它的旧ID加上maxold ID?后者似乎更有意义,但如果你解释你想做什么,可能会有所不同。这是不正确的。这将为您提供一个ID=n+1的结果行以及从表中任意选择的标题。这是不正确的。这将为您提供一个ID=n+1的结果行,以及从表中任意选择的标题。它是ANSI SQL,扩展名T611,基本OLAP操作。但是,并非所有dbms产品都支持此功能。坚持使用核心ANSI SQL以获得更好的兼容性。@jarlh谢谢!它在MSSQLServer2008R2上工作,fwiw-提供OP想要的结果,虽然没有看到业务逻辑要求,但我不确定为什么所说的结果会有用…它是ANSI SQL,扩展T611,基本OLAP操作。但是,并非所有dbms产品都支持此功能。坚持使用核心ANSI SQL以获得更好的兼容性。@jarlh谢谢!它在这里的MS SQL Server 2008 R2上工作,fwiw-提供OP想要的结果,尽管没有看到业务逻辑要求,我不确定为什么所说的结果会有用。。。