sql - 根据SQL SERVER中的事务数量追加字母

标签 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 在第二条记录中,因为它是第二笔交易,依此类推,需要根据该交易的次数附加“N”个 X发生在一个月内。

请推荐

最佳答案

这是一种方法:

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 列,假设它是一个命名不恰当的字符串列。

关于sql - 根据SQL SERVER中的事务数量追加字母,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39275221/

相关文章:

sql - PostgreSQL LIKE 子句中的正则表达式

SQL 连接命令

sql-server-2008 - 搜索字符串变量然后在 PowerShell 中运行条件语句

SQL IN 查询产生奇怪的结果

sql - Postgres 触发器不更新指定的列

c# - 在 C# 中使用 OLEDB 数据提供程序读取 excel 文件时的 FROM 子句

php - MYSQL自动更新副表查询

php - 我可以在 iOS 设备上运行 PHP 脚本吗?

html - Sql Server 创建 html 标签

sql-server - 10 :00 AM PST in SQL Server 的数据类型是什么