假设我有一个表:其中x是choose1的值,choose2的y值是
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
答案 0 :(得分: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