匹配条件时更改列值

Luc*_*nde 6 sql oracle

NULL仅当其他条件匹配时,我才需要替换列中的值。

Columns: Parent, Child, flag01, lag02
Run Code Online (Sandbox Code Playgroud)

父列有很多NULL价值,但是我想更换null,只有当价值flag01flag02为“OK”。

如果flag01flag02都是 " Ok" 并且 Parent 为 NULL,则替换为 'CT_00000'。否则,保留原始值(当 NOT NULL 时)。

Jor*_*pos 7

所以我虽然你想要一个选择语句。

select case when (parent is null and flag01 = 'OK' and flag02 = 'OK') 
       then 'CT_00000'
       else parent end as columnSomeName,
       Child, flag01, lag02
 from yourTable
Run Code Online (Sandbox Code Playgroud)


M.A*_*Ali 6

UPDATE Table_Name
SET   Column_Name = 'CT_00000'
WHERE flag01 = 'OK'
AND   flag02 = 'OK'
AND   Parent IS NULL
Run Code Online (Sandbox Code Playgroud)

只是为了选择数据

SELECT CASE WHEN (flag01 = 'OK' AND flag02 = 'OK' AND Parent IS NULL)
            THEN 'CT_00000'
            ELSE Column_Name END AS Column_Name
FROM Table_Name
Run Code Online (Sandbox Code Playgroud)