2011-11-07 45 views
2
select 
distinct ca.CASE_KEY, 
ca.priority, 
ca.lock_flag, 
ca.alternate_case_id as ALTERNATIVE_CASE_ID, 
ca.case_identifier as case_identifier 

from cases ca 

上面的查詢返回alternate_case_id爲'null',因爲db中有一個字符串'null'。如何在sql中使用修剪情況

如果客戶端爲空,它希望看不到任何內容。我如何使用sql case以及修剪,以便此錯誤將適用於像'null'這樣的數據。請幫忙。

回答

2

不知道,如果串竟是NULL,或者包含文本'null' ...所以我來處理這兩種情況下...

select 
distinct ca.CASE_KEY, 
ca.priority, 
ca.lock_flag, 
nvl(NULLIF(ca.alternate_case_id, 'null'), '') as ALTERNATIVE_CASE_ID, 
ca.case_identifier as case_identifier 
from cases ca 
+0

不錯,我會問OP,如果他們絕對確定它是一個字符串'null'或一個真正的NULL。 – artlung

+0

這對'null'不起作用(只是爲了防止數據中出現空白),那麼請你告訴我如何在這裏使用修剪功能? – Bhushan

+0

這是一個字符串'null'(壞數據) – Bhushan

1
replace(alternate_case_ID,'null','') 

但你要問爲什麼NULL字符串是是擺在首位的存儲值...

,你可以更新有null串實際NULL值的所有領域。

最後,

你確定正在顯示null字符串,它不是你的使用,以顯示"NULL"

他們在哪裏在網頁中看到"NULL"的工具只是一個功能?報告?形式,SQL開發人員(其缺省顯示(null)遇到null值時..

+0

這對'null'不起作用(只是爲了防止數據中出現寬帶),那麼請你告訴我如何在這裏使用微調功能? \t 這是一個字符串'null'(錯誤的數據) – Bhushan

+0

'null'是手動輸入的,作爲我公司應用軟件的alternateCaseid參數的答案,因爲我無法直接給出該參數的某個值。因此它顯示在查詢數據庫結果集中的空字符串。非常感謝您的評論。 – Bhushan

+0

很高興你明白替換(trim(alternate_case_ID),'null','')也可以。我原來並沒有看到前面的空格! – xQbert

4

試試這個

select 
distinct ca.CASE_KEY, 
ca.priority, 
ca.lock_flag, 
CASE trim(ca.alternate_case_id) 
    WHEN 'null' THEN '' 
    ELSE ca.alternate_case_id 
END AS ALTERNATIVE_CASE_ID, 
ca.case_identifier as case_identifier 

from cases ca 

plsql trim()
Case Statement

+0

就是這樣!謝謝! – Bhushan