请教castas long as的用法法

sql cast函数用法_百度知道【原创】oracle中CAST函数使用简介
CAST()函数可以进行数据类型的转换。
CAST()函数的参数有两部分,源值和目标数据类型,中间用AS关键字分隔。
以下例子均通过本人测试。
一、转换列或值
语法:cast( 列名/值 as 数据类型 )
1)、转换列
--将empno的类型(number)转换为varchar2类型。
select cast(empno as varchar2(10))
----------
2)、转换值
--将字符串转换为整型。
SELECT CAST('123' AS int) as result&
返回值是整型值123。
--如果试图将一个代表小数的字符串转换为整型值,又会出现什么情况呢?
SELECT CAST('123.4' AS int)&as
SELECT CAST('123.6' AS int)&as
从上面可以看出,CAST()函数能执行四舍五入操作。
--截断小数
SELECT CAST('123.447654' AS decimal(5,2)) as result from
-----------
decimal(5,2)表示值总位数为5,精确到小数点后2位。
SELECT CAST('123.4' AS decimal)
结果是一个整数值:
二、转换一个集合
语法:cast( multiset(查询语句) as 数据类型 )
1)转换成table
--学生成绩表
create table stu_score
(stu_no varchar2(50),--学号
&score& number--总分
insert into stu_score values(');
insert into stu_score values(');
insert into stu_score values(');
insert into stu_score values(');
insert into stu_score values(');
insert into stu_score values(');
insert into stu_score values(');
------------------------------------------
select * from stu_
学号&&&&&&&&
--------&& ----------
201301&&&&&&
201302&&&&&&&63
201303&&&&&&
201304&&&&&&&68
201305&&&&&&&97
201306&&&&&&
201307&&&&&&
--奖学金表。
--奖学金表规定了名次,每个名次的人数和奖金。
create table scholarship
stu_rank&& varchar(10),--名次
stu_num&&&&
int,--限定人数
money&&&&&&
number--奖金
insert into scholarship values('1',1,'1000');
insert into scholarship values('2',2,'500');
insert into scholarship values('3',3,'100');
-----------------------------------------------
名次&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&人数&&&&
---------- --------------------------------------- ----------
1&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&1&&&&&&
2&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&2&&&&&&&
3&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&3&&&&&&&
现在要根据成绩表的成绩降序排列,按奖学金表的名额确定排名和奖金。排名时不考虑相同成绩。
排名的结果应该如下:
名次& &奖金
201305&&&&&&&
201307&&&&&&&
87&&&&&&&&&&
201303&&&&&&&
77&&&&&&&&&
201304&&&&&&&&68&&&&&&&&&&3&&&&&&&
201301&&&&&&&&67&&&&&&&&&&3&&&&&&&&&100
201302&&&&&&&&63&
3&&&&&&&&&100
SELECT c.stu_no,c.score,b.stu_rank,b.money
& FROM (SELECT c.*,ROW_NUMBER() OVER(ORDER BY
score DESC) rn FROM stu_score c) c
,(SELECT b.stu_rank,b.money,ROW_NUMBER() OVER(ORDER BY b.stu_rank)
FROM scholarship b
&&&&&&&&&&&
, TABLE( CAST( MULTISET( SELECT NULL
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
CONNECT BY LEVEL &= b.stu_num
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
&&&&&&&&&&&&&&&&&&&&&&&&&&&
AS SYS.ODCIVARCHAR2LIST )&
&&&&&&&&&&&&&&&&&&&&&&&&&&
WHERE c.rn=b.
执行结果如下:
STU_NO&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
SCORE&&&&&
STU_RANK&&&&&&&
--------------------------------------------------
----------&&&&&&&&
----------&&&&&&&&&
----------
201305&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
97&&&&&&&&&&&&&&&&&&&&
1&&&&&&&&&&&&&&&
201307&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
87&&&&&&&&&&&&&&&&&&&&
2&&&&&&&&&&&&&&&&
201303&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
77&&&&&&&&&&&&&&&&&&&&
2&&&&&&&&&&&&&&&&
201304&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
68&&&&&&&&&&&&&&&&&&&&
3&&&&&&&&&&&&&&&&
201301&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
67&&&&&&&&&&&&&&&&&&&&
3&&&&&&&&&&&&&&&&
201302&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
63&&&&&&&&&&&&&&&&&&&&
3&&&&&&&&&&&&&&&&
通过对比发现,确实达到了目的。
此外cast还能转化成collection,varray,此时都需要记过multiset集合函数一起使用。
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。as-cast finish的意思
沪江词库精选as-cast finish是什么意思、英语短语。
中文释义: 清水混凝土面
竣工图,竣工图
随着季节的推移
随着根的生长
随着幼虫的生长
2016as-cast finish是什么意思由沪江网提供。cast是什么意思?怎么用?它的搭配有哪些?_百度知道oracle cast (multiset()as )用法_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
评价文档:
oracle cast (multiset()as )用法
上传于||暂无简介
大小:4.04KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢}

我要回帖

更多关于 as long as的用法 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信