如何选择由其他一些列组成的列

时间:2010-10-13 14:50:40

标签: sql mysql

我有一个daycode列,可以存储1,2 ... 7的值 然后在另一个表中,我有像field1,field2...field7

这样的cols

我可以key加入他们,但如何根据传递的值选择特定的fieldX列?

Table 1 has the following columns
-------------
id
prodno
field1
field2
field3
field4
field5
field6
field7

每个fieldX代表星期一,星期二等的值,直到星期日为止。

Table 2 has the following columns
-------------
id
prodno
dt
daycode

更新

t2有像field1,field2 ... field7这样的列,日代码值是1,2 ... 7.我们需要将“字段”与从日代码列中获取的值连接起来。

select table1.id,select [concat('field',table2.daycode)] from table1 join
table2 on table1.id=table2.key

1 个答案:

答案 0 :(得分:4)

您可以在字符串中创建语句,然后使用execute (@sql)执行它 或者您可以在选择正确列的选择中添加案例陈述。

我不确定是否可以尝试

SELECT t1.id, 
 CASE 
   WHEN daycode = 1 THEN t2.field1 
   WHEN daycode = 2 THEN t2.field2 
   WHEN daycode = 3 THEN t2.field3 
   WHEN daycode = 4 THEN t2.field4 
 END
FROM t1 join t2 on t1.id=t2.key;