0

假设我有一张表:其中 x 是 selected1 的值,y 是 selected2 的值

    ID Chose1 Chose2 x y
    1  A      B      2 3
    2  C      D      3 5

从这里我想得到这样的东西:z是x * y(如果选择为空,y = 1)。

   NR ID Chose1 Chose2 z
   1  1  A             2
   2  1  A      B      6
   3  1         B      3
   4  2  C             3
   5  2  C      D      15
   6  2         D      5
4

1 回答 1

1

此 select 语句将使用您提供的示例获取上面的数据:

select (ID-1)*3+1 as NR, id, Choose1, null as Choose2, x as z from tbl_values
union 
select (ID-1)*3+2, id, Choose1, Choose2, x*y from tbl_values
union
select (ID-1)*3+3, id, null, Choose2, y from tbl_values
order by NR

此处演示(在 MySQL、SQL Server 中测试):http ://sqlfiddle.com/#!2/5af4b/3

于 2013-10-13T12:22:33.287 回答