|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
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学习教程适合他们,他们就不应该买别的工具。事实上,云计算产业一直推崇自助服务,但提供这些服务的公司已经开始认识到解决方案提供商推销他们商品的价值。 |
|