create table o
(
code char(1) not null
)
insert into o values('+')
insert into o values('-')
insert into o values('*')
insert into o values('/')
go
create table t
(
id int not null
)
insert into t values(1)
insert into t values(2)
insert into t values(3)
insert into t values(4)
insert into t values(5)
insert into t values(6)
insert into t values(7)
insert into t values(8)
insert into t values(9)
insert into t values(10)
go
--sql解法
select *
from t a, o o1, t b, o o2, t c, o o3, t d
where
(case o3.code
when '+' then
(case o2.code
when '+' then
(case o1.code
when '+' then a.id+b.id
when '-' then a.id-b.id
when '*' then a.id*b.id
when '/' then a.id/b.id
end)+c.id
when '-' then
(case o1.code
when '+' then a.id+b.id
when '-' then a.id-b.id
when '*' then a.id*b.id
when '/' then a.id/b.id
end)-c.id
when '*' then
(case o1.code
when '+' then a.id+b.id
when '-' then a.id-b.id
when '*' then a.id*b.id
when '/' then a.id/b.id
end)*c.id
when '/' then
(case o1.code
when '+' then a.id+b.id
when '-' then a.id-b.id
when '*' then a.id*b.id
when '/' then a.id/b.id
end)/c.id
end)+d.id
when '-' then
(case o2.code
when '+' then
(case o1.code
when '+' then a.id+b.id
when '-' then a.id-b.id
when '*' then a.id*b.id
when '/' then a.id/b.id
end)+c.id
when '-' then
(case o1.code
when '+' then a.id+b.id
when '-' then a.id-b.id
when '*' then a.id*b.id
when '/' then a.id/b.id
end)-c.id
when '*' then
(case o1.code
when '+' then a.id+b.id
when '-' then a.id-b.id
when '*' then a.id*b.id
when '/' then a.id/b.id
end)*c.id
when '/' then
(case o1.code
when '+' then a.id+b.id
when '-' then a.id-b.id
when '*' then a.id*b.id
when '/' then a.id/b.id
end)/c.id
end)-d.id
when '*' then
(case o2.code
when '+' then
(case o1.code
when '+' then a.id+b.id
when '-' then a.id-b.id
when '*' then a.id*b.id
when '/' then a.id/b.id
end)+c.id
when '-' then
(case o1.code
when '+' then a.id+b.id
when '-' then a.id-b.id
when '*' then a.id*b.id
when '/' then a.id/b.id
end)-c.id
when '*' then
(case o1.code
when '+' then a.id+b.id
when '-' then a.id-b.id
when '*' then a.id*b.id
when '/' then a.id/b.id
end)*c.id
when '/' then
(case o1.code
when '+' then a.id+b.id
when '-' then a.id-b.id
when '*' then a.id*b.id
when '/' then a.id/b.id
end)/c.id
end)*d.id
when '/' then
(case o2.code
when '+' then
(case o1.code
when '+' then a.id+b.id
when '-' then a.id-b.id
when '*' then a.id*b.id
when '/' then a.id/b.id
end)+c.id
when '-' then
(case o1.code
when '+' then a.id+b.id
when '-' then a.id-b.id
when '*' then a.id*b.id
when '/' then a.id/b.id
end)-c.id
when '*' then
(case o1.code
when '+' then a.id+b.id
when '-' then a.id-b.id
when '*' then a.id*b.id
when '/' then a.id/b.id
end)*c.id
when '/' then
(case o1.code
when '+' then a.id+b.id
when '-' then a.id-b.id
when '*' then a.id*b.id
when '/' then a.id/b.id
end)/c.id
end)/d.id
end)=24