![](/img/trans.png)
[英]How to replace rows containing alphabets and special characters with Blank spaces in snowflake
[英]replace 0 with blank spaces
我想顯示空白 '' 而不是 Expression 字段的零值。 如果 exp 是 INT 數據類型。 每當我嘗試使用(當 exp1 為 0 然后 '' else exp1 以 exp1 結尾)但它仍然得到 0 作為輸出。任何幫助表示贊賞。 謝謝
如果exp
是數字類型,則需要使用CAST
或CONVERT
將其轉換為字符串。 另外,我不相信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
注意: CAST
和CONVERT
varchar
和nvarchar
的默認長度為 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.