実現したいこと
SQL のエラーを解消したい。
発生している問題・分からないこと
以下のストアドファンクションを定義しようとしていますが、文法的に通りません。
エラーメッセージ
error
1ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'when json_extract(mv, "$.30") = "null" 2 then return greatest( 3 ...' at line 7 4
該当のソースコード
MariaDB
1delimiter // 2create or replace function _max(mv text) 3returns decimal deterministic 4begin 5 case 6 when json_extract(mv, "$.25") = "null" 7 then return cast(json_unquote(json_extract(mv, "$.20")) as decimal(10, 3)) 8 when json_extract(mv, "$.30") = "null" 9 then return greatest( 10 cast(json_unquote(json_extract(mv, "$.20")) as decimal(10, 3)), 11 cast(json_unquote(json_extract(mv, "$.25")) as decimal(10, 3))) 12 else return null 13 end case; 14end // 15delimiter ; 16
試したこと・調べたこと
- teratailやGoogle等で検索した
- ソースコードを自分なりに変更した
- 知人に聞いた
- その他
上記の詳細・結果
ソースコードはエラーが再現可能な最小限の構成で、実際にはもっと複雑です。
いろいろと試した結果、return で引っかかっているように見えます。
補足
MariaDB-server-10.11.9-1.el9.x86_64

回答1件
あなたの回答
tips
プレビュー