我的表格包含以下静态列
ID Sys_Date Name prop_name1 prop_name2 prop_name3 prop_value1 prop_value2 prop_value3
10 11/2/2011Java class method parameter Imanager getOrders orderNumber
我需要编写SQL查询,获取输入属性名称,如“method”,然后检查(prop_name1 prop_name2 prop_name3)并检查哪一列 如果我发现它等于“方法”我需要将3列跳到正确的值“getOrders”并从那里获取值
prop_name1 is mapping to prop_value1
prop_name2 is mapping to prop_value2
prop_name3 is mapping to prop_value3
我怎么能用sql查询呢?
提前致谢
答案 0 :(得分:1)
你可以这样做:
select name,value
from
(
select id, prop_name name, prop_name value
from table
union
select id, prop_name2 name, prop_name2 value
from table
union
select id, prop_name3 name, prop_name3 value
from table
)
where name = 'method'
...这基本上可以将您的数据变成一个更容易查询的结构。不过,你最好改变表结构。