2013-05-21 66 views
-1

我有一個觀點表,其中我有一個查詢寫成這樣IF或查詢CASE(SQL Server2008中)

SELECT landNo, planNo, blockNo, parcelNo, RTRIM(LTRIM(STR(parcelNo))) AS parcelNoString, 
    parcelAREA, '[ ' + blockNo + ' ]' + ' - ' + RTRIM(LTRIM(STR(parcelNo))) + ' - ' + 
    RTRIM(LTRIM(STR(parcelAREA))) AS DisplayName 
FROM PARCELS 

這樣的顯示名稱顯示爲[blockNo] - parcelNo - parcelArea

我現在已經把在它的檢查,如果blockNo IS NULL然後DisplayName必須是

[] - parcelNo - parcelArea

可有人HEL p在這方面。

+0

' '[' + COALESCE(塊編號, '')+ ']'' –

+0

感謝兄弟的工作......請寫一個答案接受。再次感謝。 – AbdulAziz

回答

2

嘗試

'[' + COALESCE(blockNo, '') + ']' 

COALESCE返回第一個非空參數,因此,如果塊編號爲空,它會返回一個空字符串('')。

0

如果blockNo是一個字符串,plain;

'[' + ISNULL(blockNo, '') + ']' 

如果塊編號是數字類型,第一它轉換爲一個字符串或它會返回[0];

'[' + ISNULL(CAST(blockNo AS NVARCHAR), '') + ']'