sql select语句,查询出两列结果拼接在一起
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;
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
promo_name || '''s start date was ' || to_char(promo_begin_date,'yyyy-mm-dd') AS "Promotion Launches"
FROM promotions;
--'s里的'要两个用来转义
select id, ename || '''s job is ' || job from emp;
成功了,但是请问|| '''s 为什么用了三个单引号? 还有我问题中的那种写法有名字么?叫什么?为什么执行失败?
plsql中的字符串是用单引号来标识的,字符串中的单引号需要多加一个来转义;
你问题中的写法我还没尝试过,有时间研究再回复。