根据SQL SERVER中的事务数附加字母

时间:2016-09-01 15:11:06

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

需要SQL查询才能将字母附加到整数列 我的样本数据就像

+--------+----------+--------+
| Number | Date     | amount |
+--------+----------+--------+
| 135    | 20160901 | $10    |
| 135    | 20160912 | $20    |
| 135    | 20160915 | $30    |
+--------+----------+--------+

需要如下输出,结果应基于日期

+--------+--------+
| Number | amount |
+--------+--------+
| 135X   | $10    |
| 135XX  | $20    |
| 135XXX | $30    |
+--------+--------+

X在第一个记录中附加一次,因为记录是一个月中的第一个事务,XX是秒,因为它是第二个事务,依此类推,需要根据事务的次数附加X的'N'否发生在一个月之内。

请建议

1 个答案:

答案 0 :(得分:4)

这是一种方法:

select (cast(number as varchar(255)) +
        replicate('X', row_number() over (partition by number, year(date), month(date) order by date)
                 )
       ) as number,
       amount
from t;

您可以使用类似的逻辑来更新Number列,假设它是一个名称不正确的字符串列。