有没有写过这样的SQL语句:表中的一条纪录,字段A=01时,显示一条纪录,同时字段A1赋为000001,B1取B字段的值;
字段A=02时,显示两条纪录,字段A1分别赋为000002和000003,B1分别为B字段和C字段的值。
原始纪录
A B C
01 11 00
02 22 33之后
A1 B1
000001 11
000002 22
000003 33
字段A=02时,显示两条纪录,字段A1分别赋为000002和000003,B1分别为B字段和C字段的值。
原始纪录
A B C
01 11 00
02 22 33之后
A1 B1
000001 11
000002 22
000003 33
解决方案 »
- 【急】如何在sqlplus中(像dos命令dir查看)查看库中有哪些表?
- oracle 冷备份 路径不一致 恢复 解决办法
- rm -rf $ORACLE_HOME 怎么恢复
- Oracle怎么配置监听,监听配了以后怎样链接到数据库服务上面??
- 招PL/SQL 程序員
- oracle判断空值
- default tablespace一定要设置成system么?
- ORACLE中SELECT语句没有加ORDER BY 情况下默认排序规则是什么?
- 请教一个创建数据库的问题
- 还是Oracle的菜问题,呵呵。。。
- 我使用<oracle9i>< pl/sql >出现了ORA-03113: 通信通道的文件结束
- 按月分组查询的问题,各位前辈帮帮小弟吧!
UNION ALL
SELECT '000002',B FROM TBNAME WHERE A='02'
UNION ALL
SELECT '000003',C FROM TBNAME WHERE A='02';
SQL> select * from tt;A B C
---------- ---------- ----------
01 11 00
02 22 33
02 222 333
02 2222 3333
02 22222 33333SQL> SELECT '000001',B FROM TT WHERE A='01'
2 UNION ALL
3 SELECT '000002',B FROM TT WHERE A='02'
4 UNION ALL
5 SELECT '000003',C FROM TT WHERE A='02';'00000 B
------ ----------
000001 11
000002 22
000002 222
000002 2222
000002 22222
000003 33
000003 333
000003 3333
000003 33333已选择9行。SQL>
或者嵌套一层 在外面加order by
SQL> SELECT '000001' colName,B FROM TT WHERE A='01'
2 UNION
3 SELECT '000002',B FROM TT WHERE A='02'
4 UNION
5 SELECT '000003',C FROM TT WHERE A='02';COLNAM B
------ ----------
000001 11
000002 22
000002 222
000002 2222
000002 22222
000003 33
000003 333
000003 3333
000003 33333已选择9行。SQL>