【问题标题】:Condition failing for one of the clauses in a 'case' statement“case”语句中的一个子句条件失败
【发布时间】:2014-04-04 05:08:02
【问题描述】:
DELIMITER $$

USE `mg_ims`$$

DROP PROCEDURE IF EXISTS `sp_get_drop_down_data`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `sp_get_drop_down_data`(

IN _name VARCHAR(15))

BEGIN

        CASE  

            WHEN _name = 'CUSTOMERS' THEN      

                SELECT cust_id,cust_name,address FROM tb_customers; 

            WHEN _name = 'SUPPLIERS' THEN      

                SELECT supp_name FROM tb_suppliers;

            WHEN _name = 'BRANDS' THEN 

                SELECT b.name FROM tb_brands b;

            WHEN _name = 'REGIONAL_OFFICES' THEN 

                SELECT r.name FROM tb_area_offices r;

            WHEN _name = 'SUB_OFFICES' THEN 

                SELECT s.name FROM tb_locations s;

            ELSE 

                SELECT 404 `Code`,'Case not Found' Description; 

        END CASE; 

    END$$


DELIMITER ;

除了'regional_offices'之外,上述所有情况都正常工作......虽然语法和逻辑是正确的......

【问题讨论】:

  • 不工作是什么意思?你有什么错误吗?以及哪个数据库?
  • 什么这个数据库是干什么用的?
  • mysql 数据库...错误是“案例不存在”。

标签: mysql database stored-procedures


【解决方案1】:

您的问题是 _namevarchar(15),但字符串 'REGIONAL_OFFICES' 的长度为 16 个字符!

【讨论】:

  • 完美...谢谢西蒙·麦肯齐
猜你喜欢
  • 1970-01-01
  • 2011-08-21
  • 2015-11-02
  • 1970-01-01
  • 2012-11-30
  • 1970-01-01
  • 1970-01-01
  • 2022-08-17
  • 2018-07-04
相关资源
最近更新 更多