2013-10-21 40 views
1

我有一個表[Case],其中有兩個整數,其中一個叫[CaseNo],另一個叫[QueryNo]。任何時候只有其中一個存在,另一個將返回空值。選擇兩個Ints中的一個並應用條件格式

我想要一個SELECT語句,如果它存在,將返回[CaseNo],如果不是,它應該返回[QN]來表示它是[QueryNo]。

我嘗試了下面的語句 -

SELECT CONVERT(VarChar(50), (ISNULL(CaseNo, 'Q' + QueryNo))) 
FROM [Case] 

但它不喜歡我的轉換。

有人可以幫助我獲得正確的聲明來實現我的目標。

回答

1

使用CASE聲明:

Select Case when caseNo is null then 'Q'+ Convert(varchar(10),queryNo) 
      else Convert(varchar(10),caseNo) end as yourNo 
from [Case] 

或者,如果你喜歡使用ISNULL/COALESCE,你可以這樣做:

Select isnull(Convert(varchar(10), caseNo),'Q' + Convert(varchar(10), queryNo)) yourNo 
from [Case] 
+0

但我需要把一個 'Q' 的值的前如果它是QueryNo,那麼返回的值將是一個字符串。例如,如果CaseNo是NULL,並且QueryNo是123,我希望Select返回'Q123'。 – PJW

+0

我已經嘗試了第二個建議,它給了我轉換varchar值'Q'爲數據類型int時轉換失敗。'這就是我試圖將轉換合併到VarChar的原因。 – PJW

+0

編輯我的答案,缺少'案件'添加,都應該工作。 – Kaf

相關問題