Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/webpack/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 如何将存储过程转换为单个SQL语句_Mysql - Fatal编程技术网

Mysql 如何将存储过程转换为单个SQL语句

Mysql 如何将存储过程转换为单个SQL语句,mysql,Mysql,我的数据库中有一个表,看起来像(表中可以有相同的元组): 我必须在as之后显示结果(Branch属性是动态的): 经过一些帮助,我想出了以下解决方案: SET @sql = NULL; SELECT GROUP_CONCAT(DISTINCT CONCAT( 'COALESCE(GROUP_CONCAT(DISTINCT case when branch = ''', branch, ''' then status en

我的数据库中有一个表,看起来像(表中可以有相同的元组):

我必须在as之后显示结果(Branch属性是动态的):

经过一些帮助,我想出了以下解决方案:

SET @sql = NULL; SELECT GROUP_CONCAT(DISTINCT CONCAT( 'COALESCE(GROUP_CONCAT(DISTINCT case when branch = ''', branch, ''' then status end),''OK'') AS ', CONCAT('Branch',branch) ) ) INTO @sql FROM Table1; SET @sql = CONCAT('SELECT productName, ', @sql, ' FROM Table1 GROUP BY productName'); PREPARE stmt FROM @sql; EXECUTE stmt; .


我希望将此过程转换为单个SQL语句。我试过了,但找不到解决办法。我怎样才能做到这一点?感谢

这个精确的结果(因为它是由存储过程生成的,在运行时确定列数),不能在单个SQL select语句中重现。这是不可能的。

这个精确的结果(因为它是由存储过程生成的,在运行时确定列数),不能在单个SQL select语句中复制。这是不可能的。< /P>我们可以考虑<代码>调用SPNED(…)>代码>一个语句吗?我们可以考虑<代码>调用SPNED(…)>代码>一个语句吗?
+-------------+---------+--------+
| ProductName | Branch 1|Branch 2|
+-------------+---------+--------+
| P1          | dead    |    dead|
| P2          | expired |     OK |
+-------------+---------+--------+
SET @sql = NULL; SELECT GROUP_CONCAT(DISTINCT CONCAT( 'COALESCE(GROUP_CONCAT(DISTINCT case when branch = ''', branch, ''' then status end),''OK'') AS ', CONCAT('Branch',branch) ) ) INTO @sql FROM Table1; SET @sql = CONCAT('SELECT productName, ', @sql, ' FROM Table1 GROUP BY productName'); PREPARE stmt FROM @sql; EXECUTE stmt;
+-------------+---------+-----------+
| productName | Branch1 |  Branch2  |
+-------------+---------+-----------+
| p1          | dead    |    dead   |
| p2          | expired |    OK     |
+-------------+---------+-----------+