我的SQL select语句中有一个名为NoteID和VersionID的字段。我需要在select SQL查询中包含一个计算列,该列将在结果中创建一个名为“Version No”的列。较高的“版本ID”对于相同的NoteID
获得更高的“版本号”所以,在我的查询中
select NoteID, VersionID, VersionNo from Notes
VersionNo应该即时计算。
答案 0 :(得分:0)
试一试
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 |
答案 1 :(得分:0)
如果NoteID
和VersionID
列是两种数字数据类型。
SELECT NoteID, VersionID, (NoteID + VersionID) As VersionNo
FROM Notes
请参阅this
答案 2 :(得分:0)
以这种方式试试
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 |
这是 SQLFiddle 演示