sql select语句,查询出两列结果拼接在一起

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql select语句,查询出两列结果拼接在一起相关的知识,希望对你有一定的参考价值。

oracle数据库。emp表,想显示的结果为: [ename]'s job is [job]
ename 和job是两列, 's job is 是拼接在两个值中间的字符串,select语句怎么写?
OCA的题中有一种写法,但是测试总是报错:
SELECT promo_name q''s start date was ' promo_begin_date AS "Promotion Launches" FROM promotions;
ERROR at line 1:
ORA-00923: from keyword not found where expected

1、Oracle创建表,含两列,name和job;create table test_job(name varchar2(30), job varchar2(30));

2、插入样例数据;

insert into test_job(name, job) values('ste','teacher');

insert into test_job(name, job) values('jack','driver');

insert into test_job(name, job) values('mick','cooker');

insert into test_job(name, job) values('jacy','driver');

insert into test_job(name, job) values('lucy','boxer');

insert into test_job(name, job) values('john','iter');

3、执行查询语句,数据已插入;select * from TEST_JOB t

4、编辑语句,拼接所需sql;select name||'''s job is '|| job from TEST_JOB t;

参考技术A 可以使用:
concat 连接 或者 ||
例子:

年份 月份 数据1 数据2
2000 1 1 1
2000 2 2 1
2001 2 2 2
2001 5 5 4
希望的查询结果如下所示:

时间 数据1 数据2
2000年1月 1 1
2000年2月 2 1
2001年2月 2 2
2001年5月 5 4
select 年份||'年'||月份||'月' 时间,数据1,数据2
from tb
或者
select concat(concat(年份,'年'),concat(月份,'月')) 时间,数据1,数据2
from tb
参考技术B   SELECT
  promo_name || '''s start date was ' || to_char(promo_begin_date,'yyyy-mm-dd') AS "Promotion Launches"
  FROM promotions;

--'s里的'要两个用来转义
参考技术C 如果只是要查询的列拼接可以用逻辑或
select id, ename || '''s job is ' || job from emp;追问

成功了,但是请问|| '''s 为什么用了三个单引号? 还有我问题中的那种写法有名字么?叫什么?为什么执行失败?

追答

plsql中的字符串是用单引号来标识的,字符串中的单引号需要多加一个来转义;
你问题中的写法我还没尝试过,有时间研究再回复。

本回答被提问者采纳

sql语句查询结果如何大写?结果如何拼接啊?

a表列为:sno ,cno,sname。b表:cno cname core,要求查询不及格同学的姓名(sname)如jim(要求名字必须大写),和学号课程号,(要拼接)例如sno 为23.cno为02.结果为:
JIM 23-02.

--有什么疑问可以随时找我 希望采纳
select upper(a.sname) 姓名,a.sno 学号,b.cno 课程号,a.sno +'-'+b.cno 学号课程号

from a join b on a.cno=b.cno
where b.core<60追问

小写用的是lower吗

追答

是的

参考技术A SELECT upper(a.sname) 姓名,a.sno +'-'+b.cno 学号课程号

FROM a,b where b.core<60 and a.cno=b.cno追问

小写用的是lower吗

追答

当然是呀....

参考技术B select upper(sname),(a.sno +'-'+a.con) from a,b where a.con=b.con and b.core<60追问

小写用的是lower吗

追答

是的

以上是关于sql select语句,查询出两列结果拼接在一起的主要内容,如果未能解决你的问题,请参考以下文章

将两条sql的查询结果拼接在一起显示

SQL server 两个查询结果拼接成一个,语句改怎样修改?

sql:两个select语句查询出的结果如何拼接到一起

sql怎么查询出两列字段相同的数据(在忽略英文大小写和空格的情况下)

SQL中如何将两列拼接

SQL server查询结果拼接