使用UNION在SQL Select的末尾添加一行

kh.*_*tab 4 sql oracle

我使用一些过滤器在记录中创建了一个视图,并且我必须添加仅包含来自另一个表的ID和sql结果末尾的特定行的行。

因此,预期结果是这样的:

    Column 1 | Column 2 | Column 3 | Column4
1   0001     | 565      | AM1      | DR01
.
.
59  TEST1    |          |          |
60  NON_IMMO |          |          |
Run Code Online (Sandbox Code Playgroud)

第59行是第二个表的ID,第60行是指定行。我的查询是这样的:

SELECT DISTINCT a.asset_id 
 , a.serial_id 
 , a.VIN 
 , b.project_id 
  FROM ps_asset a 
 WHERE --Some conditions  
  UNION 
 SELECT PO_GROUP_ID 
 ,' ' 
 , ' ' 
 , ' ' 
  FROM PS_PO_GROUP_TBL 
  UNION 
 SELECT 'NON_IMMO' 
 ,' ' 
 ,' ' 
 ,' ' 
  FROM dual
Run Code Online (Sandbox Code Playgroud)

但是问题是使用这个,我没有得到最后的特定行。

我觉得SGBD会显示按字母顺序排列的2个UNIONS。

    Column 1 | Column 2 | Column 3 | Column4
1   0001     | 565      | AM1      | DR01
.
.
59  NON_IMMO |          |          |
60  TEST1    |          |          |
Run Code Online (Sandbox Code Playgroud)

感谢帮助。

Per*_*uss 5

将最后UNION一个更改为a UNION ALL以跳过消除重复项(作为副作用对行进行排序)。那应该足够了...

...
FROM PS_PO_GROUP_TBL 
UNION ALL
SELECT 'NON_IMMO' 
...
Run Code Online (Sandbox Code Playgroud)