在组合框中显示数据库中的位值

时间:2014-01-09 09:48:45

标签: sql sql-server-2008

我有不同的列,名为bit_SocietyTypeBunglow,bit_SocietyTypeFlat等用作标志。现在我想为所有设置为true(即等于1)的标志检索适当的名称('Bungalow','Flat'等)作为我可以在程序中的组合框中使用的列表。

这是我尝试过的,但它给我的名字是colums,而不是行。

  BEGIN
    SELECT 
      CASE WHEN bit_SocietyTypeBunglow = 1 THEN 'Bunglows' ELSE NULL END AS Bunglow, 
      CASE WHEN bit_SocietyTypeFlat = 1 THEN 'Flats' ELSE NULL END AS Flat, 
      CASE WHEN bit_SocietyTypePent = 1 THEN 'Pent Houses' ELSE NULL END AS Pent_House, 
      CASE WHEN bit_SocietyTypeRow = 1 THEN 'Row Houses' ELSE NULL END AS Row_House
    FROM tblSocietyDetail WHERE str_SocietyName = @strSocietyName

实际上我的表及其列是这样的: table data

我希望我的组合像这样填充: combobox

我正在使用存储过程来编写此查询

1 个答案:

答案 0 :(得分:1)

让我们看看我是否理解正确。如果社团只有这两个,你想在你的组合框中有条目“Flats”和“Pent Houses”。要获得每个条目的记录,您必须多次选择该表:

SELECT 'Bunglows' 
FROM   tblsocietydetail 
WHERE  str_societyname = @strSocietyName 
       AND bit_societytypebunglow = 1 
UNION 
SELECT 'Flats' 
FROM   tblsocietydetail 
WHERE  str_societyname = @strSocietyName 
       AND bit_societytypeflat = 1 
UNION 
SELECT 'Pent Houses' 
FROM   tblsocietydetail 
WHERE  str_societyname = @strSocietyName 
       AND bit_societytypepent = 1 
UNION 
SELECT 'Row Houses' 
FROM   tblsocietydetail 
WHERE  str_societyname = @strSocietyName 
       AND bit_societytyperow = 1;