当我运行下面的查询时,我收到错误。
SELECT 'EMP_ID'||','||'LAST_NAME'||','||'FIRST_NAME'||','||'SALARY'
FROM DUAL
UNION ALL
SELECT EMP_ID,LAST_NAME,FIRST_NAME,SALARY
FROM EMPLOYEES
ORDER BY EMP_ID,LAST_NAME,FIRST_NAME;
错误消息:
“EMP_ID”:标识符无效
我在这里尝试的是用逗号
创建标题答案 0 :(得分:0)
使用UNION或UNION ALL时,UNION / UNION ALL两侧选择的列数必须相同。
在您的示例中,您在第一个查询中选择了1列(4个字符串的串联),在第二个查询中选择了4个 - 因此错误。
答案 1 :(得分:0)
你遇到了一些问题。
执行此操作时,它会形成一个列。
'EMP_ID'||','||'LAST_NAME'||','||'FIRST_NAME'||','||'SALARY'
然后你试图联合4列 - 两个select语句必须在联合中具有相同的列数。
下面的查询将起作用,因为现在它只是1列的#1
SELECT 'EMP_ID'||','||'LAST_NAME'||','||'FIRST_NAME'||','||'SALARY'
FROM DUAL
UNION ALL
SELECT EMP_ID || ',' || LAST_NAME || ',' || FIRST_NAME || ',' ||SALARY
FROM (Select * from EMPLOYEES order by EMP_ID,LAST_NAME,FIRST_NAME) e1;
根据您获得的错误,确保您的employees表中有一个名为“EMP_ID”的列。您还必须按列删除订单,因为它们需要出现在选择中,而不是。