2017-09-19 73 views
-2

我需要執行一個需要COALESCE的存儲過程,如果字段值爲null,則使用另一個字段值。EXEC sproc COALESCE(value1,value2)

EXEC dbo.TestSproc COALESCE ('Field1','Field2') 

任何人都可以建議如何最好地編碼?

這將在SQL作業中調用,因此需要成爲一行。

+0

你是什麼意思? – Jodrell

+0

@Jodrell我不知道我怎麼能爲你分解得更多。我需要在Job'EXEC dbo.TestSproc COALESCE('EndDate','StartDate')'中調用SPROC如果EndDate爲null,則需要使用StartDate,我的SPROC將在EndDate的10天內查看任何活動。我無法編輯存儲過程,因爲它在其他區域中使用。 – shawkins1

+1

你已經*失敗*將你的問題放在你目前的代碼*產生一個錯誤*。一旦你提到過,通常也包括實際的錯誤信息*。 (但是,在這種情況下,我知道問題是什麼 - 'EXEC'可以接受參數的* literal值*或* variables *,它不接受任意*表達式*) –

回答

0

CASE語句時,那場我們NULL

CASE WHEN field IS NULL 
    THEN COALESCE ('Field1','Field2') 
    ELSE 0 END 
+0

你可以擴展嗎,我需要這個作爲一個SQL作業的exec語句 – shawkins1

+0

你目前的代碼是什麼? –

0

或者:

declare @field1 bigint = (select Field1 from table1); 
declare @field2 bigint = (select Field2 from table2); 
declare @isnull bigint = isnull(@field1, @field2); 

exec dbo.TestSproc @isnull 
+0

謝謝,儘管我需要這個作爲SQL Job – shawkins1

+0

@ shawkins1的單行,嗯,在問題中寫下它。 – Jodrell

+0

@ shawkins1如果你需要,你可以把它放在一行上。 –

相關問題