mysql判断字段为零,返回空字符串

mysql判断字段为零,返回空字符串,第1张

select paymentno,amount,

 case 

     when amount>0 and amount<=40 then 'low'

        when amount>40 and amount<=80 then 'moderate'

        when amount>80 then 'high'

        else 'incorrect' end lvl

from `penalties`

#对罚款登记分为三类,第一类low,包括大于0小于等于40的罚款,第二类moderate大于40

 #到80之间的罚款,第三类high包含所有大于80的罚款。

同理查询是否为0 也可用 case when , 

select     case when =0 then ''  else '' end lvl form

MySQL:

在MySQL中使用FIND_IN_SET( st , str )函数来判断某个字符是否包含某字符。其中,st表示需要判断的字符,str表示相应的字符串字段。如果包含,则返回st字符在字符串中的位置,以1为起点。如果不包含,则返回0;

SQLServer:

在SQLServer中使用CHARINDEX(','+ st +','  ,  ','+ str +',')函数来判断某个字符串是否包含某字符。其中,st表示需要判断的字符,str表示相应的字符串字段。如果包含,则返回st字符在字符串中的位置,以1为起点。如果不包含,则返回0;

注意:在SQLServer函数中,st必须为字符串,使用int则无效,如果是数字类型字符,必须使用双引号。

mysql有专门的函数实现你需要的功能:

FIND_IN_SET(str,strlist)

如果字符串str在由N子串组成的表strlist之中,返回一个1到N的值。一个字符串表是被“,”分隔的子串组成的一个字符串。如果第一个参数是一个常数字符串并且第二个参数是一种类型为SET的列,FIND_IN_SET()函数被优化而使用位运算!如果str不是在strlist里面或如果strlist是空字符串,返回0。如果任何一个参数是NULL,返回NULL。如果第一个参数包含一个“,”,该函数将工作不正常。

mysql> SELECT FIND_IN_SET('b','a,b,c,d');

返回值2

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12186795.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存