仓酷云

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

[学习教程] 发布mysql语句顶用if的例子

[复制链接]
萌萌妈妈 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 20:14:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
MySQL采用双重授权(DualLicensed),它们是GPL和MySQLAB制定的商业许可协议。select*,if(sva=1,"男","女")asssvafromtanamewheresva""
12.2.把持流程函数
CASEvalueWHEN[compare-value]THENresult[WHEN[compare-value]THENresult...][ELSEresult]ENDCASEWHEN[condition]THENresult[WHEN[condition]THENresult...][ELSEresult]END
在第一个计划的前往了局中,value=compare-value。而第二个计划的前往了局是第一种情形的实在了局。假如没有婚配的了局值,则前往了局为ELSE后的了局,假如没有ELSE部分,则前往值为NULL。
MySQL>SELECTCASE1WHEN1THENone
->WHEN2THENtwoELSEmoreEND;
->one
mysql>SELECTCASEWHEN1>0THENtrueELSEfalseEND;
->true
mysql>SELECTCASEBINARYB
->WHENaTHEN1WHENbTHEN2END;
->NULL
一个CASE表达式的默许前往值范例是任何前往值的相容汇合范例,但详细情形视其地点语境而定。假如用在字符串语境中,则前往了局味字符串。假如用在数字语境中,则前往了局为十进制值、实值或整数值。
IF(exPR1,expr2,expr3)
假如expr1是TRUE(expr10andexpr1NULL),则IF()的前往值为expr2;不然前往值则为expr3。IF()的前往值为数字值或字符串值,详细情形视其地点语境而定。
mysql>SELECTIF(1>2,2,3);
->3
mysql>SELECTIF(1<2,yes,no);
->yes
mysql>SELECTIF(STRCMP(test,test1),no,yes);
->no
假如expr2或expr3中只要一个明白是NULL,则IF()函数的了局范例为非NULL表达式的了局范例。
expr1作为一个整数值举行盘算,就是说,假设你正在考证浮点值或字符串值,那末应当利用对照运算举行查验。
mysql>SELECTIF(0.1,1,0);
->0
mysql>SELECTIF(0.10,1,0);
->1
在所示的第一个例子中,IF(0.1)的前往值为0,缘故原由是0.1被转化为整数值,从而引发一个对IF(0)的查验。这也许不是你想要的情形。在第二个例子中,对照查验了原始浮点值,目标是为了懂得是不是其为非零值。对照了局利用整数。
IF()(这一点在其被贮存光临时表时很主要)的默许前往值范例依照以下体例盘算:
表达式
前往值

expr2或expr3前往值为一个字符串。
字符串

expr2或expr3前往值为一个浮点值。
浮点

expr2或expr3前往值为一个整数。
整数

假设expr2和expr3都是字符串,且个中任何一个字符串辨别巨细写,则前往了局是辨别巨细写。
http://blog.knowsky.com/
IFNULL(expr1,expr2)
假设expr1不为NULL,则IFNULL()的前往值为expr1;不然其前往值为expr2。IFNULL()的前往值是数字或是字符串,详细情形取决于其所利用的语境。
mysql>SELECTIFNULL(1,0);
->1
mysql>SELECTIFNULL(NULL,10);
->10
mysql>SELECTIFNULL(1/0,10);
->10
mysql>SELECTIFNULL(1/0,yes);
->yes
IFNULL(expr1,expr2)的默许了局值为两个表达式中加倍“通用”的一个,按次为STRING、REAL或INTEGER。假定一个基于表达式的表的情形,或MySQL必需在内存储器中贮存一个一时表中IFNULL()的前往值:
CREATETABLEtmpSELECTIFNULL(1,test)AStest;
在这个例子中,测试列的范例为CHAR(4)。
NULLIF(expr1,expr2)
假如expr1=expr2建立,那末前往值为NULL,不然前往值为expr1。这和CASEWHENexpr1=expr2THENNULLELSEexpr1END不异。
mysql>SELECTNULLIF(1,1);
->NULL
mysql>SELECTNULLIF(1,2);
->1
注重,假如参数不相称,则MySQL两次求得的值为expr1。
援用:http://zxlm.cityk.cn/fh/viewthread.php?tid=1395
也许最好的策略是以不变应万变:给客户他们所需要的,不多也不少。如果MySQL学习教程适合他们,他们就不应该买别的工具。事实上,云计算产业一直推崇自助服务,但提供这些服务的公司已经开始认识到解决方案提供商推销他们商品的价值。
愤怒的大鸟 该用户已被删除
沙发
发表于 2015-1-18 18:55:37 | 只看该作者
不过话说回来了,绝大多数的性能优化准则与对sqlserver存储的结构理解息息相关
柔情似水 该用户已被删除
板凳
发表于 2015-1-27 18:51:04 来自手机 | 只看该作者
这一点很好的加强了profiler的功能。但是提到profiler提醒大家注意一点。windows2003要安装sp1补丁才能启动profiler。否则点击没有反应。
海妖 该用户已被删除
地板
发表于 2015-2-5 14:48:28 | 只看该作者
只能告诉你,学好数据库语言和原理,多见识几种数据库软件,比一棵树上吊死要好。
透明 该用户已被删除
5#
发表于 2015-2-12 09:25:01 | 只看该作者
很多书籍啊,不过个人认为看书太慢,还不如自己学。多做实际的东西,就会遇到很多问题,网上搜下解决问题。不断重复这个过程,在配合sql的F1功能。
因胸联盟 该用户已被删除
6#
发表于 2015-3-3 02:09:17 | 只看该作者
这一点很好的加强了profiler的功能。但是提到profiler提醒大家注意一点。windows2003要安装sp1补丁才能启动profiler。否则点击没有反应。
小魔女 该用户已被删除
7#
发表于 2015-3-11 09:00:34 | 只看该作者
再开发调试阶段和OLAP环境中,外键是可以建立的。新版本中加入了SETNULL和SETDEFAULT属性,能够提供能好的级联设置。
8#
发表于 2015-3-18 04:33:22 | 只看该作者
始终遗憾SQLServer的登陆无法分配CPU/内存占用等指标数。如果你的SQLServer给别人分配了一个只可以读几个表的权限,而这个家伙疯狂的死循环进行连接查询,会给你的系统带来很大的负担。
精灵巫婆 该用户已被删除
9#
发表于 2015-3-25 13:22:54 | 只看该作者
SQL语言是学习所有数据库产品的基础,无论你是做数据库管理还是做数据库开发都是这样。不过具体学习的侧重点要看你将来做哪一块,如果是做数据库管理(DBA),侧重点应该放在SQLServer的系统管理上.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-5-3 19:45

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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