Sql 查询中的联合字段
我有一个带有字段A1、A2、A3、A4、B1、B2、B3和B4的表。我需要一个select语句来表示联合字段:C1中的A1和B1,C2中的A2和B2,C3中的A3和B3,C4中的A4和B4 例如:Sql 查询中的联合字段,sql,firebird,Sql,Firebird,我有一个带有字段A1、A2、A3、A4、B1、B2、B3和B4的表。我需要一个select语句来表示联合字段:C1中的A1和B1,C2中的A2和B2,C3中的A3和B3,C4中的A4和B4 例如: TABLE ONE A1 A2 A3 A4 B1 B2 B3 B4 1 1 1 1 0 0 0 0 2 2 2 2 0 0 0 0 0 0 0 0 3 3 3 3 我需要这样的结果: TABLE TWO C1 C2 C3 C4 1 1
TABLE ONE
A1 A2 A3 A4 B1 B2 B3 B4
1 1 1 1 0 0 0 0
2 2 2 2 0 0 0 0
0 0 0 0 3 3 3 3
我需要这样的结果:
TABLE TWO
C1 C2 C3 C4
1 1 1 1
2 2 2 2
3 3 3 3
你需要这样的东西
select A1, A2, A3, A4
from yourtable where a1+a2+a3+a4 > 0
union all
select B1, B2, B3, B4
from yourtable where b1+b2+b3+b4 > 0
应该很简单,比如:
SELECT A1 AS C1
,A2 AS C2
,A3 AS C3
,A4 AS C4
FROM table_one
WHERE A1 != 0
AND A2 != 0
AND A3 != 0
AND A4 != 0
UNION ALL
SELECT B1 AS C1
,B2 AS C2
,B3 AS C3
,B4 AS C4
FROM table_two
WHERE B1 != 0
AND B2 != 0
AND B3 != 0
AND B4 != 0
如果A1=1和B1=1,或者A1=1和B1=2,或者对于1,0,1,0,1,0,1,0,或者1,0,1,0,0,1,0,1,会有什么结果呢?想想看,对于0,0,0,0,0,0,0,0和1,1,1,1,1,1,1,1,我觉得几乎所有告诉你的事情,你的数据结构都很奇怪,没有放大,只会导致越来越多的问题。从…开始。也许您应该重新考虑结构本身?谢谢Mark的建议。在我的例子中,如果字段a1..a4的值为0,则b1..b4的值为0,如果b1..b4的值为0,则a1..a4的值为0。这不会产生预期的结果,因为它会引入值为0、0、0的行,其中0.3个带有样本data@MarkRotteveel我已经添加了where clausenow make A1=-1000,而该行将根本不显示:-D