多个单选按钮列表和插入到SQL

本文关键字:插入 SQL 列表 单选按钮 | 更新日期: 2023-09-27 18:11:30

我正在使用ASP.NET创建一个调查页面。它在单选按钮列表(答案)上有29个问题,目前按行存储。

原始:

EmpID | Q1 | Q2 | Q3 | ---> Q29
123   | 1  | 3  | 5  |

原始数据使用一个插入子句。

insert into response table (empid,q1,q2,q3 etc) values (@empid,@q1,@q2,@q3)

我想这样存储结果:

EmpID | QNum | Result
123 | Q1 | 1
123 | Q2 | 3
123 | Q3 | 5

我是否需要创建单独的insert SQL子句,或者我可以循环SQL来自动执行?

我不介意写多个插入,但它看起来相当低效。

insert into response table (empid,QNum,result) values (@empid, 'Q1', @q1)
insert into response table (empid,QNum,result) values (@empid, 'Q2', @q2)
etc etc

问候,尼尔

多个单选按钮列表和插入到SQL

如果您正在使用MS SQL server,您应该能够使用UNPIVOT函数

也许像这样的事情可能会起作用?

insert into response_table (empid, QNum, Result)
select empid,QNum,result
from (select @empid,@q1,@q2,@q3) p
UNPIVOT
(Result for QNum in ('Q1', 'Q2', 'Q3') ) as unpvt;

在Oracle中也有类似的功能。