Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 使用管道分隔符选择查询中列名和列的硬编码值_Oracle_Select_Hardcoded - Fatal编程技术网

Oracle 使用管道分隔符选择查询中列名和列的硬编码值

Oracle 使用管道分隔符选择查询中列名和列的硬编码值,oracle,select,hardcoded,Oracle,Select,Hardcoded,我想在带有管道分隔符的select查询中将列名及其值硬编码为newyork。例如,Emp表中有列EmpId,EmpName,Salary。我想要输出,例如 Select EmpId ||'|'|| EmpName ||'|'|| 'NewYork' as City ||'|'|| Salary from Emp 这里我想要输出查询中的City列,它的值应该是每个记录的'NewYork' 在这里,我从“未找到预期的关键字”“中得到了错误,如。当我使用

我想在带有管道分隔符的select查询中将列名及其值硬编码为
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;