2015-12-22 42 views
0

我将如何使视图或计算表,将采取这一点。 表1结合列的SQL视图

location send1T state send2TF state 
west   T  WA  F  OR 
east   F  FL  T  NY 
central  T  ND  T  TX 

而且会使看起来像这样,如果发送1或2发送为真,视图或表。

location state 
west  WA 
east  NY 
central  ND 
central  TX 
+1

也许,您正在寻找'UNION'。 –

+0

哪个RDBMS是为了这个?请添加一个标签来指定您是使用'mysql','postgresql','sql-server','oracle'还是'db2' - 或者其他的东西。 –

+1

修复你的不良数据模型并规范你的数据当然更可取。 – HLGEM

回答

3

只要做到以下(Postgres的):

create view myview (location, state) as 
(select location, state1 from table1 where send1T = true) 
union 
(select location, state2 from table1 where send2tf = true); 

请注意,您的原始表包括两次状态,我把它叫做状态1和分别状态2。用于测试的创建/插入:

create table table1 (location varchar, send1T boolean, state1 varchar, send2tf boolean, state2 varchar); 
insert into table1 values ('west', true, 'WA', false, 'OR'); 
insert into table1 values ('east', false, 'FL', true, 'NY'); 
insert into table1 values ('central', true, 'ND', true, 'TX');