2015-12-22 41 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');