我拥有的数据表:这里Q3_ [] _ [] 第二个变量是SceneID,第三个变量是要求的产品数量。因此,对于给定的SceneID,他们给出4次记录他们对ProductID的选择,并对下一个SceneID重复相同的操作。所以这里的响应是ProductID。
假设我们有SceneID - 3,4,#次被问到 - 4次,ProductID在回复中 - 9,108,4
ResponseID GYear FieldCode Q_3_1 Q_3_2 Q_3_3 Q_3_4 Q_6_1 Q_6_2 Q_6_3 Q_6_4
YAS101 2017 12 9 108 4 NULL 108 4 NULL NULL
YAS102 2017 12 108 9 NULL NULL 9 4 NULL NULL
我想看的输出是标签中的ProductID而不是1,2,3,4之类的订单号。因此,对于Q_3_1,如果被访者回答9,则应显示为' 1'在Q_3_9其他' 0'
所需的输出:
ResponseID GYear FieldCode Q_3_9 Q_3_108 Q_3_4 Q_6_9 Q_6_108 Q_6_4
YAS101 2017 12 1 1 1 0 1 1
YAS102 2017 12 1 1 0 1 0 1
我现在的代码:
SELECT [ResponseID]
,[Gyear]
,[Fieldcode]
,CASE
WHEN q_3_1 = 9 or
q_3_2 = 9 or
q_3_3 = 9 then 1 else 0 END as q_3_9
,CASE
WHEN q_3_1 = 108 or
q_3_2 = 108 or
q_3_3 = 108 then 1 else 0 END as q_3_108
,CASE
WHEN q_3_1 = 4 or
q_3_2 = 4 or
q_3_3 = 4 then 1 else 0 END as q_3_4
,CASE
WHEN q_6_1 = 9 or
q_6_2 = 9 or
q_6_3 = 9 then 1 else 0 END as q_6_9
,CASE
WHEN q_6_1 = 108 or
q_6_2 = 108 or
q_6_3 = 108 then 1 else 0 END as q_6_108
,CASE
WHEN q_6_1 = 4 or
q_6_2 = 4 or
q_6_3 = 4 then 1 else 0 END as q_6_4
FROM YAS_Data1
我想知道的是有更好的简化方法吗?由于我的数据非常庞大。
由于