如果原始列为NULL,如何将SELECT值设置为不同的列?

RJ.*_*RJ. 0 sql t-sql case

SELECT TOP 10
        VendorId,
        CASE WHEN VendorNumber IS NULL THEN VendorId
        END AS 'VendorNumber'
FROM    Table
Run Code Online (Sandbox Code Playgroud)

以上不起作用.

基本上我想这样做:

我想选择2列:VendorId和VendorNumber.

如果VendorNumber为NULL,我想显示VendorId.

如何通过上述查询完成此操作?该查询基本上显示NULL而不是VendorID.

Blo*_*ard 5

您必须指定ELSE,或当您将获得空VendorNumber不是空:

SELECT TOP 10
        VendorId,
        CASE WHEN VendorNumber IS NULL THEN VendorId ELSE VendorNumber
        END AS 'VendorNumber'
FROM    Table
Run Code Online (Sandbox Code Playgroud)

您可以使用isnull或简化coalesce:

select top 10 VendorId, isnull(VendorNumber, VendorId) as VendorNumber
from Table
Run Code Online (Sandbox Code Playgroud)