2016-09-22 42 views
2

我试图将150列的值更改为以下值;MYSQL-多列值更改

'0 = Not provided' 
' 1 = Yes ' 
' 2 = No ' 

我能够对每列使用case语句做到这一点。但问题在于它会将所有内容放入一列中。有没有办法为每个专栏做到这一点,而不写150个案例陈述?这些列需要按照特定的顺序。

例如:

SELECT CASE 
      WHEN Answer.Question1_ID is null THEN 'Not Provided' 
      WHEN Answer.Question1_ID = 1 THEN 'Yes' 
      WHEN Answer.Question1_ID = 2 Then 'No' 
End as 'Question1', 
    CASE 
      WHEN Answer.Question2_ID is null THEN 'Not Provided' 
      WHEN Answer.Question2_ID = 1 THEN 'Yes' 
      WHEN Answer.Question2_ID = 2 Then 'No' 
End as 'Question2' 

。 。 。

从回答

+0

这就是为什么你永远不会创建这样的表格:以后查询它们会变成一场噩梦。 –

+0

WOW ... 150列:D –

+0

所以你有问题1 - >问题150?你真的真的应该规范化该表,然后对子表进行简单/平凡的更新查询。 –

回答

2

有没有办法做到这一点的每一列,而无需编写150条case语句?

号您可以使用一个程序的情况下写的语句如果需要的话。