再见西城 发表于 2015-1-16 22:32:15

MSSQL网页设计decode 函数的用法

用一个库#bak_database存放这些历史数据。decode|函数
在数据库开辟的历程傍边,有良多时分必要将行转换成列大概将列转换成行来显现数据,而常常我们在创建表布局时不克不及依据显现的请求来保留数据,因而乎只能在保留数据以后做一些需要的操纵(例如说:创建视图等)来到达显现的目标。

上面用一个罕见的数据显现来讲明decode函数的用法。就是成就单的显现,这个是教授教养办理体系中最多见的。我想做开辟的职员都碰到过这个,并且在年夜学时代也是经常打仗成就单,显现的是:姓名、语文、数学等

完成剧本以下(cjd.sql):

--建表
createtablestud
(
sidvarchar2(10),
kcbmvarchar2(10),
cjint
);
--拔出测试数据
insertintostudvalues(1,语文,80);
insertintostudvalues(2,数学,90);
insertintostudvalues(3,英语,100);
commit;
--创立视图,decode用法
createorreplaceviewcjdas
selectsid,
decode(kcbm,语文,cj,0)语文,
decode(kcbm,数学,cj,0)数学,
decode(kcbm,英语,cj,0)英语
fromstud
orderbysid;
--显现数据
select*fromcjd;

实行历程以下:

SQL>createtablestud(sidvarchar2(10),
2kcbmvarchar2(10),
3cjint);

表已创立。

SQL>insertintostudvalues(1,语文,80);

已创立1行。

SQL>insertintostudvalues(2,数学,90);

已创立1行。

SQL>insertintostudvalues(3,英语,100);

已创立1行。

SQL>commit;

提交完成。

SQL>createorreplaceviewcjdas
2selectsid,
3decode(kcbm,语文,cj,0)语文,
4decode(kcbm,数学,cj,0)数学,
5decode(kcbm,英语,cj,0)英语
6fromstud
7orderbysid;

视图已创建。

SQL>select*fromcjd;

SID语文数学英语
----------------------------------------
18000
20900
300100
为多种编程语言提供了API。这些编程语言包括C、C++、Python、Java、Perl、PHP、Eiffel、Ruby和Tcl等。

精灵巫婆 发表于 2015-1-19 16:17:41

多走走一此相关论坛,多看一些实例开发,多交流0经验,没什么的,我也是刚学没多久!加油

蒙在股里 发表于 2015-2-4 17:05:39

varchar(max)\\\\nvarchar(max)类型的引入大大的提高了编程的效率,可以使用字符串函数对CLOB类型进行操作,这是一个亮点。

admin 发表于 2015-2-10 04:52:32

可能有的朋友会抱怨集成的orderby,其实如果使用ranking函数,Orderby是少不了的。如果担心Orderby会影响效率,可以为orderby的字段建立聚集索引,查询计划会忽略orderby操作(因为本来就是排序的嘛)。

爱飞 发表于 2015-2-28 20:35:19

换言之,只有在不断的失败中尝试成功,而关于失败的总结却是很少的

飘飘悠悠 发表于 2015-3-10 07:54:18

一直以来个人感觉SQLServer的优化器要比Oracle的聪明。SQL2005的更是比2k聪明了不少。(有次作试验发现有的语句在200万级时还比50万级的相同语句要快show_text的一些提示没有找到解释。一直在奇怪。)

变相怪杰 发表于 2015-3-17 05:36:16

分区表效率问题肯定是大家关心的问题。在我的试验中,如果按照分区字段进行的查询(过滤)效率会高于未分区表的相同语句。但是如果按照非分区字段进行查询,效率会低于未分区表的相同语句。

透明 发表于 2015-3-23 22:23:57

作了些试验,发现使用CLR的存储过程或函数在达到一定的阀值的时候,系统性能会呈指数级下滑!这是非常危险的!只使用几个可能没有问题,当一旦大规模使用会造成严重的系统性能问题!
页: [1]
查看完整版本: MSSQL网页设计decode 函数的用法