SQL Server-在第n行后重复字符
如何在每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' ),(
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来自哪里?是否来自包含这些值的另一个表?你需要一个通用的解决方案,可以与这个其他表?只要一分钟,我给它一个尝试!很好,伙计!