如何根据SQL select语句中的另一列添加计算列

时间:2013-12-26 08:15:26

标签: sql sql-server sql-server-2008

我的SQL select语句中有一个名为NoteID和VersionID的字段。我需要在select SQL查询中包含一个计算列,该列将在结果中创建一个名为“Version No”的列。较高的“版本ID”对于相同的NoteID

获得更高的“版本号”

所以,在我的查询中

select NoteID, VersionID, VersionNo from Notes

VersionNo应该即时计算。

3 个答案:

答案 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)

如果NoteIDVersionID列是两种数字数据类型。

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 演示