仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 795|回复: 8
打印 上一主题 下一主题

[学习教程] MYSQL网页编程之ORACLE中字符串对照

[复制链接]
跳转到指定楼层
楼主
发表于 2015-1-16 22:29:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
采用DBaaS解决方案,他们也可以使用同大企业一样的技术。在大型组织中,DBaaS可以提供部门级解决MySQL学习教程,而无需IT部门和采购部门的介入,提供更快和更容易的方法来实现小型解决方案。oracle|对照|字符串在ORACLE中,将空字符串视为NULL,任何值与NULL对照了局都为NULL。云云一来,在对照两个字符串的时分就会呈现不测。请看以下的例子:
DECLARE
iVARCHAR2(10):=NULL;
vVARCHAR2(10):=ABC;
BEGIN
IF(i=v)THEN
DBMS_OUTPUT.PUT_LINE(相称);
ELSE
DBMS_OUTPUT.PUT_LINE(不等);
ENDIF;
END;
请你用你伶俐的思想判别一下,了局应当是甚么?很简单就能够得出了局:不等。很好,你是对的。在SQLPLUS上运转的了局和你想的一样。那末我改一下程序,你再判别一下:
DECLARE
iVARCHAR2(10):=NULL;
vVARCHAR2(10):=ABC;
BEGIN
IF(iv)THEN
DBMS_OUTPUT.PUT_LINE(不等);
ELSE
DBMS_OUTPUT.PUT_LINE(相称);
ENDIF;
END;
看上往和第一个程序没有太年夜的不同,很简单就得出了局:不等。呵呵。你断定了局就是这个吗?那末请你在SQLPLUS测试一下,来考证你是准确的。很惋惜,准确的了局应当是:相称。是否是很惊奇?正如入手下手所说的:任何值与NULL对照了局都为NULL。即在第一个程序中的i=v对照的了局应当是NULL,而第二个程序中的iv对照的了局也是NULL。当IF布局中的前提为NULL时,将跳过以后的分支进进到ELSE大概是停止。不可吗?那你运转一下以下的程序将能够比及考证:
BEGIN
IF(NULL)THEN
DBMS_OUTPUT.PUT_LINE(NOTNULL);
ELSE
DBMS_OUTPUT.PUT_LINE(NULL);
ENDIF;
END;
了局输入的是:NULL。
那末应当如何准确的对照两个字符串呢?
起首我先说说怎样断定两个字符串相称(仍是用上边的两个变量i和v)。
1、当i和v都为NULL的时分,以为i和v相称。iISNULLANDvISNULL(不要写成如许:i=v。从上边的剖析我们能够晓得如许写的了局为NULL)。
2、当i和v中只要一个为NULL,一定不相称。
3、当i和v都不为NULL的时分,我们就能够用‘=’号来判别它们是不是相称。iISNOTNULLANDvISNOTNULLANDi=v。
依据以上三点,我们能够得出判别i和v相称的前提表达式:iISNULLANDvISNULLORiISNOTNULLANDvISNOTNULLANDi=v。
那末两个字符串不相称的前提表达式只必要判别相称的表达式为FALSE就能够了。
把判别两个字符串是不是相称的功效写成函数:
CREATEORREPLACEFUNCTIONISEQUAL
(
VAR1INVARCHAR2,
VAR2INVARCHAR2
)
RETURNNUMBER--0:不等1:相称-1:毛病
IS
IF(VAR1ISNULLANDVAR2ISNULLORVAR1ISNOTNULLANDVAR2ISNOTNULLANDVAR1=VAR2)THEN
RETURN1;
ELSE
RETURN0;
ENFIF;
BEGIN
EXCEPTION
WHENOTHERSTHEN
RETURN-1;
END;
以下上测试程序:
DECLARE
VAR1VARCHAR2(10):=NULL;
VAR2VARCHAR2(10):=A;
BEGIN
IF(isequal(VAR1,VAR2)=1)THEN
DBMS_OUTPUT.PUT_LINE(=);
ELSE
DBMS_OUTPUT.PUT_LINE();
ENDIF;
END;

RDBMS并非没有局限性。它们难以扩展,需要大量的资源来配置和维护,比如时间、硬件和人力。同样,它们往往遵循峰值性能模型,这就要求系统按照峰值容量来配置可用性,而不考虑典型的数据使用情况。
冷月葬花魂 该用户已被删除
沙发
发表于 2015-1-19 15:01:16 | 只看该作者
再开发调试阶段和OLAP环境中,外键是可以建立的。新版本中加入了SETNULL和SETDEFAULT属性,能够提供能好的级联设置。
活着的死人 该用户已被删除
板凳
发表于 2015-1-26 23:57:16 | 只看该作者
习惯敲命令行的朋友可能会爽一些。但是功能有限。适合机器跑不动SQLServerManagementStudio的朋友使用。
飘灵儿 该用户已被删除
地板
发表于 2015-2-5 01:27:38 | 只看该作者
你觉得我的非分区索引无法对起子分区,你可以提醒我一下呀!没有任何的提醒,直接就变成了非分区表。不知道这算不算一个bug。大家也可以试试。
不帅 该用户已被删除
5#
发表于 2015-2-11 00:38:19 | 只看该作者
个人感觉没有case直观。而且默认的第三字段(还可能更多)作为groupby字段很容易造成新手的错误。
第二个灵魂 该用户已被删除
6#
发表于 2015-3-1 19:10:24 | 只看该作者
发几份SQL课件,以飨阅者
深爱那片海 该用户已被删除
7#
发表于 2015-3-10 22:30:36 | 只看该作者
groupby子句可以将查询结果分组,并返回行的汇总信息Oracle按照groupby子句中指定的表达式的值分组查询结果。
变相怪杰 该用户已被删除
8#
发表于 2015-3-17 11:24:59 | 只看该作者
原来的计算字段其实和虚拟字段很像。只是管理方面好了而已,性能方面提高不多。但是SQL2005提供了计算字段的持久化,这就提高了查询的性能,但是会加重insert和update的负担。OLTP慎用。OLAP可以大规模使用。
灵魂腐蚀 该用户已被删除
9#
发表于 2015-3-24 09:28:08 | 只看该作者
每天坚持做不一样的是,认真做笔录,定时复习。一个月你就可以有一定的收获。当然如果你想在sql方面有一定的造诣,你少不了需要看很多很多的书籍了。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-12-29 23:55

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表