ton*_*yeb 3 sql t-sql sql-server
我有一个表在字段中有一个数字.基于该数字,我希望SQL将记录插入到另一个表中.下面是第一个表的示例:
Event Fields Type
Swimming 3 Basic
Swimming 2 Advanced
Running 5 Basic
Running 1 Advanced
Run Code Online (Sandbox Code Playgroud)
所以根据上面的表格,我希望SQL能够插入下面的记录:
Event GradeType Grade
Swimming Basic1 NULL
Swimming Basic2 NULL
Swimming Basic3 NULL
Swimming Advanced1 NULL
Swimming Advanced2 NULL
Running Basic1 NULL
Running Basic2 NULL
Running Basic3 NULL
Running Basic4 NULL
Running Basic5 NULL
Running Advanced1 NULL
Run Code Online (Sandbox Code Playgroud)
我想我需要使用WHILE来循环但不知道从哪里开始!所有帮助赞赏.
根本不需要循环:
INSERT INTO new_table(Event, GradeType, Grade)
SELECT Event, CONCAT(Type, n) AS [GradeType], NULL AS Grade
FROM tab
CROSS APPLY (VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9)) AS n(n)
WHERE n <= Fields;
Run Code Online (Sandbox Code Playgroud)
请记住,n子查询是带有硬编码值的计数表.您可以使用任何其他合适的方法.相关:创建和填充数字表的最佳方法是什么?
如果您使用SQL Sever低于2012年,则需要使用+连接.
| 归档时间: |
|
| 查看次数: |
61 次 |
| 最近记录: |