簡體   English   中英

select之后的語句在存儲過程中不起作用的情況

[英]case when statement after select not working in stored procedure

我嘗試做這樣的事情

    SET parentid = (SELECT parent FROM pages WHERE id = pageid);
    CASE WHEN ( parentid <> 0 ) THEN
      SET mainid = (SELECT parent FROM pages WHERE id = parentid);
    ELSE 
      SET mainid = 0;
    END

但是由於某種原因我得到了

第3行'CASE WHEN(parentid <> 0)THEN SET mainid =(從頁面WHERE頁面中選擇父對象)附近的語法錯誤

我想念什么?

沒有END CASE子句,結尾沒有分號:

CASE WHEN ( parentid <> 0 ) THEN
      SET mainid = (SELECT parent FROM pages WHERE id = parentid);
    ELSE 
      SET mainid = 0;
END CASE;

請閱讀文檔以獲取正確的語法: http : //dev.mysql.com/doc/refman/5.0/en/case.html
這是工作示例的鏈接: http ://www.sqlfiddle.com/#!2/ 9495d1/2

我覺得這不需要變量...

SELECT CAST(CASE
    WHEN id = pageid AND parent = 0
    THEN 0
    ELSE (SELECT parent FROM pages WHERE id = parentid)
END AS INTEGER) AS mainid
FROM pages

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM