2015-10-15 181 views
-1

嗨,大家好,我想知道是否有可能在SELECT查詢中創建一個新的列?在該查詢SQL查詢創建列

我目前有一個查詢,可以爲零件號,它們的載體號,載體狀態以及它們的最終用途提供數據。我想多一個列添加到查詢,命名爲「合格」和值將

  • 「C」,如果最終使用的那部分=認證,並在數據庫中的這個其他表存在。 因此,如果零件的最終用途是證書,並且它存在於另一個表格(名爲特殊程序)中,那麼它將在此新字段中顯示爲「C」
  • 否則它將爲空白。那可能嗎?

SELECT語句:

Select distinct 
    pn.PNumber, 
    ht.CarrierID AS 'Carrier Number', 
    chs.CarrierDescriptionText AS 'Carrier State', 
    ct.EndUsedName AS 'End Use' 

結果例子:

enter image description here

+2

看一看['CASE ... WHEN'](https://msdn.microsoft.com/en-us/library/ms181765(V = sql.120) .aspx)和['EXISTS'](https://msdn.microsoft.com/en-us/library/ms188336(v = sql.120).aspx)。 –

+1

單引號用於字符串文字,對於標識符使用雙引號(例如「Carrier Number」。) – jarlh

+0

@ X.L.Ant但會創建額外的列嗎? –

回答

0

總空氣代碼。 LEFT JOIN將your_table與other_table相關聯,並在CASE塊中將ot。測試該相關行是否存在於另一個表中。更改your_table,other_table和??以適應你的情況。

Select distinct 
 
    pn.PNumber, 
 
    ht.CarrierID AS 'Carrier Number', 
 
    chs.CarrierDescriptionText AS 'Carrier State', 
 
    ct.EndUsedName AS 'End Use', 
 
    CASE WHEN [End Use] = 'Certification' AND ot.?? IS NOT NULL THEN 'C' ELSE '' END as eligibility 
 
FROM your_table yt 
 
    LEFT JOIN other_table ot ON yt.?? = ot.??

+0

omg這個作品完全謝謝你!最後一個問題,如果你不介意有反正我可以參考整個表像ot。*,因爲它不會讓我這樣做,當我改變它 –

+0

@eto_donna如果這個答案適合你,請標記爲接受。 – Siyual

+0

'我可以引用整個表,就像ot。*'是的,但如果yt和ot具有完全相同名稱的列,那麼這將不起作用。如果是這種情況,您必須輸入所有列。 –