SQL Server-在第n行后重复字符

SQL Server-在第n行后重复字符,sql,sql-server,character,repeat,Sql,Sql Server,Character,Repeat,如何在每N行之后重复字符。例如,我希望得到如下结果: 1 1234-A 2 32423-B 3 324234-C 4 afsd-D 5 32432-A 6 32423-B 7 3dsfa33-C 8 sdfw3rf-D 此A、B、C和D将在输出结果集中重复。没有其他字符。每四行生成一个行号,并使用用例语句附加所需字符。试试这个 CREATE TABLE #str(id INT,string VARCHAR(50)) INSERT #str VALUES (1,'1234' ),(

如何在每N行之后重复字符。例如,我希望得到如下结果:

1 1234-A 
2 32423-B 
3 324234-C 
4 afsd-D 
5 32432-A 
6 32423-B 
7 3dsfa33-C
8 sdfw3rf-D

此A、B、C和D将在输出结果集中重复。没有其他字符。

每四行生成一个行号,并使用用例语句附加所需字符。试试这个

CREATE TABLE #str(id INT,string VARCHAR(50))

INSERT #str
VALUES (1,'1234' ),(2,'32423' ),(3,'324234' ),
       (4,'afsd' ),(5,'32432' ),(6,'32423' ),
       (7,'3dsfa33' ),(8,'sdfw3rf' )

SELECT id,
       CASE
         WHEN rn = 1 THEN string + '-A'
         WHEN rn = 2 THEN string + '-B'
         WHEN rn = 3 THEN string + '-C'
         WHEN rn = 4 THEN string + '-D'
       END AS String
FROM   (SELECT ( ( id - 1 )%4 ) + 1 rn,*
        FROM   #str)a 
结果:

+----+-----------+
| id |  String   |
+----+-----------+
| 1  |  1234-A   |
| 2  |  32423-B  |
| 3  |  324234-C |
| 4  |  afsd-D   |
| 5  |  32432-A  |
| 6  |  32423-B  |
| 7  |  3dsfa33-C|
| 8  |  sdfw3rf-D|
+----+-----------+
试试这个:

SELECT YourID
      ,YourDescr + '-' + CHAR((ROW_NUMBER() OVER (ORDER BY YourID) - 1) % 4 + 65) AS YourDescr
FROM YourTable

它不依赖于ID列的值。

您使用的是哪个
数据库
我使用的是Microsoft SQL Server A、B、C和D来自哪里?是否来自包含这些值的另一个表?你需要一个通用的解决方案,可以与这个其他表?只要一分钟,我给它一个尝试!很好,伙计!