最有效的方法来从3列更新一列

ryg*_*y72 2 sql t-sql sql-server

这是从三个不同列更新单个列的最有效方法吗?

UPDATE TBL_FR2052A_TPOS_HIST_SPLIT
SET REPORTABLE_AMOUNT = ISNULL(PRINCIPAL,0)

UPDATE TBL_FR2052A_TPOS_HIST_SPLIT
SET REPORTABLE_AMOUNT = ISNULL(INTEREST,0)

UPDATE TBL_FR2052A_TPOS_HIST_SPLIT
SET REPORTABLE_AMOUNT = ISNULL(RAW_DATA_AMOUNT,0)
Run Code Online (Sandbox Code Playgroud)

我正在使用SQL Server.谢谢!

zam*_*nee 5

看起来像COALESCE()会有所帮助

UPDATE TBL_FR2052A_TPOS_HIST_SPLIT
SET REPORTABLE_AMOUNT = COALESCE(ROW_DATA_AMOUNT, INTEREST, PRINCIPAL, 0)
Run Code Online (Sandbox Code Playgroud)

REPORTABLE_AMOUNT然后将使用COALESCE()非空的第一个值进行更新.