SQL案例查询不起作用

问题描述 投票:1回答:2

我有一个表,其中有两列,技术上应该只是一列。假设我的表中有20行,id_col1的数据直到第15行,然后id_col2包含第16-20行的数据。所以在我的新表中,我正在使用case语句创建一个包含这两列数据的新列。但是,新列接受来自id_col1的数据,但不是来自id_col2,当它应该包含来自id_col2的数据时,它只是空白。我的代码如下:

    select 

            case
                when id_col1 is null then id_col2
                else id_col1 end as 'newcol',
            cusip,
            cast (Date as date) as 'Date',
            Price,
            Evaluator,
            Yes_No as 'Accepted'

    into #cloudtemptbl
    from MasterData
    where Date >= '2017-01-01'
    select * from #cloudtemptbl

我的理论是id_col2中的数据是二进制而不是字符串。任何帮助都非常感谢。谢谢。

sql
2个回答
0
投票

我建议这样:

when id_col1 is null or id_col1 = '' then id_col2
            else id_col1 end as 'newcol'

0
投票

您可能需要使用CONVERTCAST来获取两个表中匹配的数据类型。

计算出您计划在最终的组合表中使用的数据类型。然后对任何与该类型不匹配的数据使用CASTCONVERT,以使其格式正确。

© www.soinside.com 2019 - 2024. All rights reserved.