2014-05-25 37 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。这样,你的数据库没有了解“对象选择”任何