2013-02-12 32 views
2

在我的項目中,我想以兩種不同的方式從同一個表中獲取數據。 1)只有5個字段 2)只有10個字段 而我通過Stored Procedure獲取數據。但我希望如果可能,我應該制定一個程序。如何在sql server 2008 R2中使用IF條件進行列選擇

那麼,我可以如果條件選擇列?

例如,如果我通過參數爲「」時,它會得到只有5列的數據,並且如果我通過參數爲「更多」時,它會得到10列的數據。我可以有兩個SELECT基於條件(我已經完成)的程序中的聲明,但我想使它成爲一個SELECT聲明。可能嗎?

+0

Okie ...其實我refered這個職位。所以我想可能是有辦法的。 http://stackoverflow.com/questions/4688782/use-the-if​​-else-condition-for-selecting-the-column-in-mysql – Dhwani 2013-02-12 09:59:56

回答

1

不,是不可能有一個單一的SELECT語句。

但是,你可以這樣做:

if @ColumnList = 'less' 
begin 
    call storedProc_returning5Columns 
end 
else 
begin 
    call storedProc_returning10Columns 
end 

[另一種選擇是使用動態TSQL]

+0

其實我有其他參數也用於決定SELECT Query和我的商店程序有近8選擇語句,所以我雖然如果我可以有更好的方法。 – Dhwani 2013-02-12 10:03:52

+0

那就更好了。代碼將更容易理解,更易於維護。 – 2013-02-12 10:04:36

+0

Okie ...感謝您的幫助。 – Dhwani 2013-02-12 10:30:12

1

這是不可能的。

您最近的解決方案是在存儲過程中使用IF語句。

+0

Okie。感謝您的指導... – Dhwani 2013-02-12 10:01:35