SQL - 用计算值替换 NULL 值

SQL - replace a NULL value with a calculated value

我的查询显示了股票代码、我为股票设置的目标价格和开盘价。 如果我的 price_target 列有 NULL 值,我想用计算值替换它。 打开时增加 10%。

例如:第 3 行,代码 = ARCB。 price_target 有一个 NULL 值。 open是43.7,所以NULL应该换成48.07.

我假设我应该使用 CASE 表达式: (当 price_target 为 NULL THEN ((open * 0.1) + OPEN) END 时的情况)

但是,这会创建一个新列:

如何只替换 price_target 列中的 NULL 值?

从 SELECT 语句中取出,将 case 子句放在 WHERE 语句之后

您在 SELECT 子句中输入的任何内容都将显示为一列

像这样:

SELECT ticker, 
    case WHEN price_target IS NULL THEN ((open * 0.1) + open) else price_target 
    END as price_target, 
    open 
FROM rating_open 

你可以在这里简单地使用coalesce

select ticker, 
  Coalesce(price_target, open * 1.1),
  open
from rating_open

还要加10%,乘以1.1即可。