mysql - 使用 SQL CASE 语句替换列

标签 mysql sql case

这是我的查询:

select CASE WHEN ATTRIBUTE_SOURCE is NULL THEN <do calculation>
            ELSE ATTRIBUTE_SOURCE END AS ATTRIBUTE_SOURCE,
            * 
from (<a table containing an ATTRIBUTE_SOURCE column>)

计算工作正常,问题是结果表有两个 ATTRIBUTE_SOURCE 列,一列来自原始表,另一列由 CASE 语句添加。有没有办法将原始表中的 ATTRIBUTE_SOURCE 列完全替换为由 CASE 语句生成的 ATTRIBUTE_SOURCE 列?

最佳答案

问题是通过使用“*”检索表中的所有列。从查询的表中确定您需要的实际列,并在选择列表中明确命名它们,确保排除 ATTRIBUTE_SOURCE。

许多 DBA 都会告诉他们,他们的存在的祸根是查询只获取站点中的所有内容。 SELECT * 很少是正确的选择。

关于mysql - 使用 SQL CASE 语句替换列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49328419/

相关文章:

mysql - 如何从数据库获取的图像数组中一次显示一张图像?

python - Django transaction.commit_on_success 不回滚事务

PHP MySQL 找到列中最小的缺失数字

mysql 按情况排序

php - 使用 where、like 和 or_like CodeIgniter 3 Active Records 进行多重连接

sql - Microsoft Access - SQL - 内部外键

使用查找表时的 SQL SELECT 语句

sql - 我应该如何处理数据库中的数据副本?

mysql - 如何将键映射到 MySQL 选择查询中单个字段的值

python - 如何在 Python 中为查询集创建 switch 语句