簡體   English   中英

用空格替換 0

[英]replace 0 with blank spaces

我想顯示空白 '' 而不是 Expression 字段的零值。 如果 exp 是 INT 數據類型。 每當我嘗試使用(當 exp1 為 0 然后 '' else exp1 以 exp1 結尾)但它仍然得到 0 作為輸出。任何幫助表示贊賞。 謝謝

如果exp是數字類型,則需要使用CASTCONVERT將其轉換為字符串。 另外,我不相信exp1 is 0會起作用; 我認為您正在尋找exp1 = 0

嘗試這樣的事情:

(case when exp1 = 0 then '' else cast(exp1 as varchar(30)) end) as exp1

(case when exp1 = 0 then '' else convert(varchar(30), exp1) end) as exp1

或者使用簡單的CASE表達式,如下所示:

(case exp1 when 0 then '' else cast(exp1 as varchar(30)) end) as exp1

(case exp1 when 0 then '' else convert(varchar(30), exp1) end) as exp1

注意: CASTCONVERT varcharnvarchar的默認長度為 30,因此cast(exp1 as varchar)convert(varchar, exp1)也可以使用,但作為實踐,最好指定這些類型的長度每當您使用它們時。


但是,如果您更願意將值 0 轉換為null ,則相當容易。 只需使用NULLIF

nullif(exp1, 0) exp1

如果exp1計算結果為 0,這將返回NULL ,否則它將返回exp1的值。 將此值插入表中時,請確保將其插入的列可以為空。 如果您不熟悉使用 null,請參閱有關該主題的Wikipedia 文章以獲取更多信息。

我使用了正則表達式

{
    cast(trim(
    replace(to_char(value),'0','' )) as int)
}

可能最短的方法如下:

ISNULL(CAST(NULLIF(exp1,0) AS VARCHAR), '')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM