postgresql - 在同一查询中显示或隐藏 PostgreSQL 中的列
问题描述
如何根据布尔值在同一查询中显示或隐藏列?我正在使用的应用程序允许将 JavaScript 放在双大括号之间,并且布尔值将来自该括号。
我正在想象这样的解决方案:
SELECT
accounts.email,
IF( {{my JavaScript will return a boolean here}} )
accounts.zip
WHERE accounts.email = 'none@none.com';
如果布尔值为真,结果将是:
+---------------+-------+
| email | zip |
+---------------+-------+
| none@none.com | 20500 |
+---------------+-------+
如果布尔值为 false,则结果将是:
+---------------+
| email |
+---------------+
| none@none.com |
+---------------+
这甚至可能吗?
解决方案
您不能在 SQL 本身中动态更改要选择的列;您必须在应用程序级别执行此操作。因此,如果您需要遵循现有代码中的模式,则必须在 JavaScript 而不是 SQL 中分配列:
var query =
`SELECT
accounts.email
{ booleanResult ? ', accounts.zip' : '' }
FROM myTable
WHERE accounts.email = 'none@none.com'`
这样,当您的布尔值为真时,您的查询为SELECT accounts.email, accounts.zip FROM ...
. 当它为假时,您的查询是SELECT accounts.email FROM ...
.
推荐阅读
- python-3.x - Pandas 追加返回具有 NaN 值的 DF
- javascript - 浏览器控制台间歇性地报告“未捕获(承诺)DOMException”,但未提供其他详细信息。我怎样才能让它给我一些?
- javascript - vue2 datepicker 清除日期或选择日期没有效果
- typescript - 你能有一个只有一些已知值的 Typescript 接口吗?
- php - Symfony - 自动配置接口标签
- javascript - vue2 datepicker 如何获取更改日期的输入元素的 id?
- python - 如何创建包含变量和注释的正则表达式?
- python - TypeError:execute() 接受 2 到 3 个位置参数,但给出了 7 个
- ios - 断点后如何在 Xcode 中查看这个 Swift 类对象的内容?
- .htaccess - 在 301 重定向到 ssl 之后为 www 和 nonwww 提供不同的站点地图然后