很抱歉,标题的描述性不足,但我真的不知道如何将其放在句子中。可以说我有这张桌子:
ID | LOC | NAMEA | NAMEB
------------------------
0 | BL | X | Y
1 | BG | Z | NULL
我想知道是否可以编写一个查询来从表中返回该查询:
ID | LOC | NAME
------------------------
0 | BL | X
0 | BL | Y
1 | BG | Z
我知道如果我需要使用它,那么数据库很糟糕,我不打算这样做,但是我只是想知道是否有可能以及如何做。
答案 0 :(得分:1)
union all
(select id, loc,nameA from tablename where nameA is not null
union all
select id, loc,nameB from tablename where nameB is not null
)帮助:
UNION
答案 1 :(得分:1)
您可以使用此-
SELECT ID, LOC, NAMEA AS NAME
FROM your_table
WHERE NAMEA IS NOT NULL
UNION ALL
SELECT ID, LOC, NAMEB AS NAME
FROM your_table
WHERE NAMEB IS NOT NULL
答案 2 :(得分:0)
使用ValidateEntity
IEntityValidator<T> validatorObj = (T)ValidatorLocator.GetValidator(entityName, this);
答案 3 :(得分:0)
您想要ALL
:
SQL> with test (id, loc, namea, nameb) as
2 (select 0, 'BL', 'X', 'Y' from dual union all
3 select 1, 'BG', 'Z', NULL from dual
4 )
5 select id, loc, namea from test where namea is not null
6 union all
7 select id, loc, nameb from test where nameb is not null
8 order by id;
ID LO N
---------- -- -
0 BL X
0 BL Y
1 BG Z
SQL>
答案 4 :(得分:0)
我没有直接查询返回上述输出,但是您可以尝试以下步骤。这样,您将创建一个新表,其中包含您需要的数据作为输出。 步骤1:
`create table test2 as (select id,loc,namea from test1);`
第2步:create table test3 as (select id,loc,nameb from test1);
第3步:insert into test2(id,loc,namea) select * from test3 where nameb='y';
步骤4:select * from test2
再有一个东西namea,nameb应该具有相同的数据大小。