如何根据SQL select语句中的另一列添加计算列
我的SQL select语句中有名为NoteID和VersionID的字段。我需要在selectsql查询中包含一个计算列,该查询将在结果中创建一个名为“versionno”的列。“版本ID”越高,同一个NoteID的“版本号”越高 所以,在我的问题中如何根据SQL select语句中的另一列添加计算列,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,我的SQL select语句中有名为NoteID和VersionID的字段。我需要在selectsql查询中包含一个计算列,该查询将在结果中创建一个名为“versionno”的列。“版本ID”越高,同一个NoteID的“版本号”越高 所以,在我的问题中 select NoteID, VersionID, VersionNo from Notes 版本号应该是动态计算的。试试看 select NoteID, VersionID, row_number() OVER (ORDER BY Versi
select NoteID, VersionID, VersionNo from Notes
版本号应该是动态计算的。试试看
select NoteID, VersionID, row_number() OVER (ORDER BY VersionID) AS VersionNo from Notes
输出
| NOTEID | VERSIONID | VERSIONNO |
|--------|-----------|-----------|
| 1 | 1 | 1 |
| 2 | 2 | 2 |
| 3 | 3 | 3 |
| 4 | 5 | 4 |
| 5 | 6 | 5 |
|NOTEID | VERSIONID | VERSIONNO|
|--------|-----------|-----------|
| 1 | 1 | 1 |
| 2 | 2 | 2 |
| 3 | 3 | 3 |
| 4 | 5 | 4 |
| 5 | 6 | 5 |
在
NoteID
和VersionID
的情况下,列是两种数字数据类型
SELECT NoteID, VersionID, (NoteID + VersionID) As VersionNo
FROM Notes
请参阅以这种方式尝试
SELECT NoteID, VersionID,
ROW_NUMBER() OVER (PARTITION BY NoteID ORDER BY VersionID) VersionNo
FROM Notes
样本输出:
| NOTEID | VERSIONID | VERSIONNO |
|--------|-----------|-----------|
| 1 | 1 | 1 |
| 1 | 3 | 2 |
| 1 | 5 | 3 |
| 2 | 2 | 1 |
| 2 | 6 | 2 |
|NOTEID | VERSIONID | VERSIONNO|
|--------|-----------|-----------|
| 1 | 1 | 1 |
| 1 | 3 | 2 |
| 1 | 5 | 3 |
| 2 | 2 | 1 |
| 2 | 6 | 2 |
这里是演示您的
版本ID
是唯一的列吗?