我写了一个工作正常的查询:
SELECT t1.first_names, t1.last_names, t2.role, t3.description, t2.start_date
FROM table1 t1
LEFT JOIN table2 t2
ON t2.worker_id=t1.ID
LEFT JOIN tabke3 t3
ON t3.role = t2.role
WHERE t2.role IN (
'BFLT',
'BFDTMC',
'BFTMC',
'BFPSOC',
'BFFOSW',
'BFCP',
'BFCW',
'BFDTM',
'BFT',
'BFFSW',
'BFPSO',
'BFSW',
'BFTM',
'BFYJS',
'BFYM',
'BFYW'
)
AND t2.end_date IS NULL
但是我想将前两列(first_names
和last_names
)连接成一列。我试图修改第一行,但它似乎不起作用:
SELECT t1.first_names || ',' || t1.last_names, t2.role, t3.description, t2.start_date
答案 0 :(得分:0)
SELECT t1.first_names || ',' || t1.last_names, t2.role, t3.description, t2.start_date
看起来它应该运行,会产生例如'John,Doe'。我认为使用空格分隔姓氏形式的姓氏更为常见。此外,您应该添加列别名,以便可以将此代码放入视图中或由其他代码引用。
SELECT t1.first_names || ' ' || t1.last_names as longname , t2.role, t3.description, t2.start_date
如果您收到错误,请检查您的报价,oracle的sqlplus和sql开发人员不喜欢使用某些办公应用程序时获得的“智能引号”。你可以告诉你有聪明的报价,因为'quote'看起来与'quote'不同
最后,猜测:你的列实际上是last_name和first_name:
SELECT t1.first_name || ' ' || t1.last_name as longname , t2.role, t3.description, t2.start_date