Oracle 使用管道分隔符选择查询中列名和列的硬编码值
我想在带有管道分隔符的select查询中将列名及其值硬编码为Oracle 使用管道分隔符选择查询中列名和列的硬编码值,oracle,select,hardcoded,Oracle,Select,Hardcoded,我想在带有管道分隔符的select查询中将列名及其值硬编码为newyork。例如,Emp表中有列EmpId,EmpName,Salary。我想要输出,例如 Select EmpId ||'|'|| EmpName ||'|'|| 'NewYork' as City ||'|'|| Salary from Emp 这里我想要输出查询中的City列,它的值应该是每个记录的'NewYork' 在这里,我从“未找到预期的关键字”“中得到了错误,如。当我使用
newyork
。例如,Emp
表中有列EmpId
,EmpName
,Salary
。我想要输出,例如
Select EmpId ||'|'||
EmpName ||'|'||
'NewYork' as City ||'|'||
Salary
from Emp
这里我想要输出查询中的City
列,它的值应该是每个记录的'NewYork'
在这里,我从“未找到预期的关键字”“中得到了错误,如
。当我使用逗号而不是管道分隔符时,我得到的是结果,但不是管道。请告知。提前感谢。别名由于城市位于错误位置,请将其删除。您只能为连接的最终结果设置别名。因此,只有在您的情况下,您才应该在Salary
和Salary
后面加上别名。逗号用于分隔选择列表中的列名或表达式。另一方面,管道用于连接字符串/列并返回单个值/列。例如,从表X中选择a,b将给出两列-a
和b
;而从表x中选择a | | b
将给出一个列,该列是a
和b
列中值的串联。你到底想要什么?
with emps as (
select 1 as id, 'Smith' as name, 2000 as salary from dual
union
select 2, 'Jones', 2200 from dual
)
select
id || '|' || name as record1,
id || '|' || name || '|NewYork|' || salary as record2,
'NewYork' as city
from emps;