2014-02-28 63 views
0

我在SQL表几列它们的nchar(44)和值为空,但我需要在他们的白色的空间,我有一个客户需求量的像在SQL转换为空值,空格

Poc1 * 45; 
Poc2 * 45; 
Poc3 * 45;.....poc24 * 45 

我有相同的列数据,其中有空时,我在这些列上运行SQL查询我应该得到空格的长度为45,每个导出到文本文件。这是可能的。

string stringSql = " SELECT distinct " + 
",left([POC1]+' ',44)" + 
",left([POC2]+' ',44)" + 
",left([POC3]+' ',44)" + 
",[t_vrm] " + 
",left([POC4]+' ',44)" + 
",left([POC5]+' ',44)" + 
",[t_zone_name]" + 
",left([POC6]+'   ',44)" + 
",[t_date_time_issued] " + 
",left([POC7]+'   ',44)" + 
",left([POC8]+' ',44)" + 
",left([POC9]+' ',44)" + 
",left([POC10]+' ',44)" + 
",left([POC11]+' ',44)" + 
",left([POC12]+' ',44)" + 
",left([POC13]+' ',44)" + 
",left([POC14]+' ',44)" + 
",left([POC15]+ ' ',44)" + 
",left([POC16]+ ' ',44)" + 
+0

'NULL'是不一样的逻辑为“”虽然我不知道你的环境或应用程序,我倾向于反对这项建议。 – Zane

+0

如果你的数据类型是'NCHAR(44)''LEFT([POCN],44)'的目的是什么? – GarethD

+0

http://stackoverflow.com/search?q=replace+null+sql http://stackoverflow.com/questions/2507300 http://stackoverflow.com/questions/21613714 –

回答

1

使用ISNULL函数:

... 
,left(ISNULL([POCN], '')+' ',44) 
... 
1

为了既MSSQL和Oracle工作使用COALESCE

COALESCE(MyNullColumn, '') 

你可以手动把45位在单引号!

0

有在SQL Server中处理空值和零等效设置:

set concat_null_yields_null [on|off] 

不要使用它。如果您在使用

  • coalesce(foo,'')
  • is [not] null

等的编写符合标准的SQL相对于无效,你的代码会不分场合工作。