Mysql语法"如果长度那么"声明

时间:2015-06-05 22:07:01

标签: mysql sql if-statement syntax

我的mysql语法有问题。 我有我的子选择:

(SELECT uniqueid AS uniqueid_idx, calldate, src, dst, dstchannel, billsec, 
 SUBSTR(CONVERT(IF(LENGTH(dst)>8,cdr.dst,CONCAT('67',cdr.dst)),UNSIGNED INTEGER),1,6) prefixo_normal 
FROM cdr)

你能看到:"如果你有cdr.dst> 8然后结束.." 现在我要验证:"如果cdr.dst有< 5则创建虚拟列名称RAMAL"

我尝试过这种语法:IF(LENGTH(cdr.dst) <4, THEN cdr.dst AS ramal END

但没有工作。

我该怎么做?

谢谢!

1 个答案:

答案 0 :(得分:3)

语法为:

SELECT uniqueid AS uniqueid_idx, calldate, src, dst, dstchannel, billsec, 
        SUBSTR(CONVERT(IF(LENGTH(dst)>8,cdr.dst,CONCAT('67',cdr.dst)),UNSIGNED INTEGER),1,6) prefixo_normal,
        IF(LENGTH(dst) < 4, dst, NULL) AS ramal
FROM cdr

使用THEN功能时没有ENDIF