我多次嘗試創建 mysql 程序或函式,但我所有的嘗試都失敗了!這是我想將其作為程序或函式的 SQL 陳述句(作為 sql 查詢運行時沒有錯誤):
SET @sql = NULL;
選擇
GROUP_CONCAT(DISTINCT CONCAT(
'最大限度(
CASE WHEN s.key = "', s.key, '" THEN s.value END)
AS ',s.key))
進入@sql
FROM 提交 s where s.formid='kk';
SET @sql = CONCAT('SELECT s.formid,s.subid, ', @sql,
' FROM 提交 s where formid=''kk'' GROUP BY s.formid,s.subid');
選擇@sql;
從@sql 準備 stmt;
執行 stmt;
解除分配準備 stmt;
其中 'kk' 是輸入變數。
uj5u.com熱心網友回復:
您可以使用 DELIMITER 將代碼添加到創建程序。函式將不起作用,因為您回傳一個表,而 MySQL 不支持表作為資料型別
DELIMITER §§
CREATE PROCEDURE proc1()
BEGIN
SET @sql = NULL;
SELECT
GROUP_CONCAT(DISTINCT CONCAT(
'MAX(
CASE WHEN s.key = "', s.key, '" THEN s.value END)
AS ',s.key))
INTO @sql
FROM submissions s where s.formid='kk';
SET @sql = CONCAT('SELECT s.formid,s.subid, ', @sql,
' FROM submissions s where formid=''kk'' GROUP BY s.formid,s.subid');
SELECT @sql;
PREPARE stmt FROM @sql;
EXECUTE stmt;
DEALLOCATE PREPARE stmt;
END §§
DELIMITER ;
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/332688.html
