开发者

sql server query

HI,

i have a table with 5 columns

keyword D1 D2 D3 Total
how      1  1  1   3
are      0  0  2   2
you      0  1  0   1

i want to retrieve only columns count where the name starts with D开发者_StackOverflow so form the above table the result should be 3 please help.


SELECT D1,
       D2,
       ...etc...
       D3
    FROM mytable;

I would recommend that you do not attempt to develop any 'automatic' method of finding which columns start with 'D'. That sort of thing only ever ends in tears.

Changes to the schema should mean changes to the commands reading it.


If I understand your question, and my belief that SQL Server has the same metadata tables as Sybase is correct, then something like

select  count(*)
from    sysobjects o,
        syscolumns c
where   c.id = o.id
and     o.type = 'U' -- user tables
and     o.name = '<your_table_name>'
and     c.name like 'D%'

should so the trick.


SELECT
    Keyword, D1, D2, D3, D1 + D2 + D3 AS Total
FROM
    MyTable

You know the 3 columns starting D already: it's inane to do it dynamically in case you add a new column D4


@vj4u, you can format your table data better by editing your question, highlighting the table data and clicking the button shaped like this:

101
010

Like so:

keyword D1 D2 D3 Total 
how     1  1  1  3 
are     0  0  2  2 
you     0  1  0  1
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜