2016-09-22 62 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語句?

號您可以使用一個程序的情況下寫的語句如果需要的話。