mysql - 基于参数的 SQL 查询分支语法
问题描述
我很想做一个这样的 MySQL 查询。我知道语法不正确,我不能在这样的查询开头使用“if”。顺便说一下,这是针对 Tableau 自定义 SQL 查询的。我希望 AccountID 的负值表示显示所有帐户,正值表示显示与正值关联的帐户,或者如果没有与正值关联的帐户则不显示任何内容。
if <Parameters.AccID> < 0
select * from Accounts
else
select * from Accounts where id = <Parameters.AccID>
有人可以用正确的语法帮我做到这一点吗?由于我必须使用 Tableau Desktop 作为平台,因此我只能访问查询语法。
解决方案
如果需要,您可以运行这样的多查询。
SELECT if (Parameters.AccID < 0, @q := 'select * from Accounts',@q := CONCAT('select * from Accounts where id = ',Parameters.AccID));
PREPARE stmt from @q;
EXECUTE stmt;
DEALLOCATE PREPARE stmt
推荐阅读
- java - 如何对表达式树进行不同的遍历?
- assembly - 我试图弄清楚为什么这个 ID 回文的 x86 汇编代码认为一切都是回文
- android - Firestore 使用 Kotlin 检索数据时出错
- node.js - 从动态网站抓取特定数据的木偶到 Cheerio
- class - 颤振的语法含义
- php - Wordpress 的 WooCommerce 如何使用回调属性和获取产品规范
- python - Python中的Agrupate变量
- javascript - 我需要发送多个 ajax 请求并使用 jQuery 比较数据。这段代码有效,但太慢了。如何优化它?
- json - 使用 powershell 删除变量内的循环
- c - 关于 for 循环中的函数调用的问题