这是我的问题:
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
列?
答案 0 :(得分:0)
如果您真的想要用您可以使用的计算替换原始值 asi in you sample
的情况 update my_table
set ATTRIBUTE_SOURCE = CASE WHEN ATTRIBUTE_SOURCE is NULL THEN <do calculation>
ELSE ATTRIBUTE_SOURCE END
或简单地更新..其中
update my_table
set ATTRIBUTE_SOURCE = <do calculation>
where ATTRIBUTE_SOURCE is null
答案 1 :(得分:0)
问题是通过使用&#39; *&#39;来检索表格中的所有列。从查询表中确定所需的实际列,并在选择列表中明确命名,确保排除ATTRIBUTE_SOURCE。
许多DBA会告诉他们存在的祸根是一个只能抓取网站内所有内容的查询。 SELECT *很少是正确的选择。