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即可。
我的查询显示了股票代码、我为股票设置的目标价格和开盘价。 如果我的 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即可。