我有一个表有两列,技术上应该只是一列。假设我的表中有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中的数据是二进制而不是字符串。任何帮助都非常感谢。谢谢。
答案 0 :(得分:0)
我会建议:
when id_col1 is null or id_col1 = '' then id_col2
else id_col1 end as 'newcol'
答案 1 :(得分:0)
您可能需要使用CONVERT
或CAST
来获取两个表格中匹配的数据类型。
计算出您计划在最终的组合表中使用的数据类型。然后对任何与该类型不匹配的数据使用CAST
或CONVERT
,以使其格式正确。