2014-02-28 88 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相對於無效,你的代碼會不分場合工作。