使用嵌套的isnull将replace语句替换为替换语句中的空格

时间:2014-03-28 11:13:38

标签: sql sql-server sql-server-2008 tsql

我正在进行查询,我正在比较一个值,这是一系列连接字段,用于确认要在值中使用的特定字段。

我写了一个脚本来检查这个

   SELECT TOP 100
  [Opportunity Id]
  , replace(cast(isnull([country],'-') as varchar) 
  + cast(isnull([[Column 2],'-') as varchar) 
  + cast(isnull([[Column 3],'-') as varchar) 
  + cast(isnull([[Column 4],'-') as varchar) 
  + left(convert(varchar, isnull([Column 5],' '),120),10),'-','')

      FROM [Table]
     where [Opportunity Id] != replace(cast(isnull([country],'-') as varchar) 
  + cast(isnull([Column 2],'-') as varchar) 
  + cast(isnull([Column 3],'-') as varchar) 
  + cast(isnull([Column 4],'-') as varchar) 
  + left(convert(varchar, isnull([Column 5],' '),120),10),'-','')

当替换国家/地区值时,我经常会留下0而不是预期的空白。有什么方法可以阻止这种情况吗?

返回的数据集的示例是

 0123456
 0234567
 0345678
 0456789
 0567890

所需的数据集是

     123456
     234567
     345678
     456789
     567890

我正在使用连字符来替换空格,并且连接的其中一个字段是需要删除连字符的日期,因此我将其用作默认值来标记要删除的值。

0 个答案:

没有答案