将空值转换为sql中的空白

时间:2014-02-28 16:53:16

标签: c# sql

我在sql表中有几列是nchar(44),值为null但是我需要空格我有一个客户需求就像

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)" +

3 个答案:

答案 0 :(得分:1)

使用ISNULL功能:

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

答案 1 :(得分:1)

为了使用MSSQL和Oracle,请使用COALESCE

COALESCE(MyNullColumn, '')

您可以在单引号中手动输入45个空格!!

答案 2 :(得分:0)

Sql Server中有一个设置将nulls和nil视为等效:

set concat_null_yields_null [on|off]

不要使用它。如果使用

编写符合标准的关于无效的SQL
  • coalesce(foo,'')
  • is [not] null

之类的,无论设置如何,您的代码都能正常运行。