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

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

    Column 1 | Column 2 | Column 3 | Column4
1   0001     | 565      | AM1      | DR01
.
.
59  TEST1    |          |          |
60  NON_IMMO |          |          |

第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

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

我觉得SGBD会显示按字母顺序排列的2个UNIONS。
    Column 1 | Column 2 | Column 3 | Column4
1   0001     | 565      | AM1      | DR01
.
.
59  NON_IMMO |          |          |
60  TEST1    |          |          |

感谢帮助。

最佳答案

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

...
FROM PS_PO_GROUP_TBL
UNION ALL
SELECT 'NON_IMMO'
...

关于sql - 使用UNION在SQL Select的末尾添加一行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/48024932/

10-17 01:50