2014-05-25 163 views
0

我有一個SQL查詢,從表中選擇某些屬性,它看起來如下:一列添加到選擇SQL查詢

SELECT [pk], [TagGenNo], [Enabled] FROM [TagNumbers] 

現在,我想我的SQL查詢與其它列返回數據稱爲selected,默認爲false,屬於bit/boolean類型。

pk TagGenNo Enabled Selected 
100 03   1   0 
101 023   0   0 
+0

你想要一個硬編碼「0」,或者是有一些方法,新的派生列可以從數據來計算? – StuartLC

+0

硬編碼0, 當我的程序將這個查詢加載到它的數據集中時,它會在我選擇一行時改變這個列,這種方式當我點擊我的按鈕時,我知道他們選擇了哪些實體。 – Zapnologica

+1

我同意['lc.'(below)](http://stackoverflow.com/a/23857537/2055998)您需要重新考慮您的設計。如果你想要的東西僅僅用於後端而不是創建/默認它就在那裏。 –

回答

4

我假設你只想要一個完整的在搜索結果中零的列:

因此,如下將返回一個結果。如果是這樣,只需選擇一個常數:

SELECT [pk], [TagGenNo], [Enabled], CAST(0 AS bit) AS [Selected] FROM [TagNumbers] 

作爲一個側面說明,儘管這確實有它的應用程序(如將數據插入到不具有默認值的另一個表),你可能要三思而後行關於你的應用程序的架構。如果此列的值是始終恆定的,從來沒有堅持到數據庫中,真的是有在數據庫端生成此值,並有回通過金屬線送一大堆零沒有好處。 (更不用說它強烈地將持久層與控制器或表示層耦合)。

繼您的評論後,我會建議在對象本身中保留每個對象的布爾屬性Selected,在構建時默認爲false。這樣,你的數據庫沒有了解「對象選擇」任何