SQL server 2008表中的计算列

SQL server 2008表中的计算列,sql,sql-server,sql-server-2008,Sql,Sql Server,Sql Server 2008,如何创建下表所示的计算列 ID Group Name Age myComputedColumn ----------------------------------- 1 001 FF 28 00 2 001 GG 29 01 3 001 II 35 02 4 002 AA 15 00 5 001 UU 26 03 6 002 BB 17 01 7 002 CC 15 02 在myComputerdColumn

如何创建下表所示的计算列

ID Group Name Age myComputedColumn
-----------------------------------
1  001   FF   28  00
2  001   GG   29  01
3  001   II   35  02
4  002   AA   15  00
5  001   UU   26  03
6  002   BB   17  01
7  002   CC   15  02
myComputerdColumn
中,我希望有一个从
'00'
'24'
的值,在行到达'24'后,它将创建一个新的数字,该数字在'24'之前为'00'

如何创建这样的计算列?或者我需要在插入新记录时创建一个函数


谢谢。

这将给出1、2、3等的值

Select ID,Group,Name,Age,
       ROW_NUMBER() OVER (PARTITION BY [Group] ORDER BY ID) as computedcolumn
FROM tableName
如果你想从零开始,你可以改变,减去1

Select ID,Group,Name,Age,
       ROW_NUMBER() OVER (PARTITION BY [Group] ORDER BY ID) - 1 as computedcolumn
FROM tableName
好的,那么您也需要填充的零,您可以使用RIGHT()来完成


这将给出1、2、3等的数值

Select ID,Group,Name,Age,
       ROW_NUMBER() OVER (PARTITION BY [Group] ORDER BY ID) as computedcolumn
FROM tableName
如果你想从零开始,你可以改变,减去1

Select ID,Group,Name,Age,
       ROW_NUMBER() OVER (PARTITION BY [Group] ORDER BY ID) - 1 as computedcolumn
FROM tableName
好的,那么您也需要填充的零,您可以使用RIGHT()来完成


如果希望数字从0变为24,则应使用:

select t.*,
       (row_number() over (partition by [group] order by id) - 1) % 25
from table t;
%
运算符是模运算符。它返回整数除法后的余数

要将其作为字符,可以使用
right()
/append
0
技巧:

select t.*,
       right('0' + cast((row_number() over (partition by [group] order by id) - 1) % 25 as varchar(3)), 2) as ComputedColumn
from table t;

如果希望数字从0变为24,则应使用:

select t.*,
       (row_number() over (partition by [group] order by id) - 1) % 25
from table t;
%
运算符是模运算符。它返回整数除法后的余数

要将其作为字符,可以使用
right()
/append
0
技巧:

select t.*,
       right('0' + cast((row_number() over (partition by [group] order by id) - 1) % 25 as varchar(3)), 2) as ComputedColumn
from table t;

什么是计算的基础列?您不能创建这样的计算列,但您当然可以选择它,如下面的示例答案所示。好的,谢谢,那么我如何将答案实现为“插入”语法?计算的计算列的基础是什么?您不能创建一个这样做的计算列,但您肯定可以按照下面的示例答案选择它。好的,谢谢,那么我如何将答案实现为“插入”语法?是sql server 2012语法吗?它与2005+兼容,ie 2005年以后的所有版本..200520082012在你最后的语法中,我尝试了那一个。。但是computedcolumn的结果是从0、1、2、3、ff开始。它应该是,00,01,02,03,ff。它是sql server 2012语法吗?它与2005+兼容,即2005年以后的所有版本..200520082012在您上次的语法中,我尝试了那个语法。。但是computedcolumn的结果是从0、1、2、3、ff开始。应该是,00,01,02,03,ff。我尝试了你的上一个语法,但是comp列,从0,1,2,ff开始。应该是00,01,02,ff。@Haminteu。使字符串逻辑工作需要一个
cast()
。我尝试了上一个语法,但是compcolumn从0、1、2、ff开始。应该是00,01,02,ff。@Haminteu。需要一个
cast()
使字符串逻辑工作。