首页 文章

选择具有给定范围的SQL表列

提问于
浏览
0

我在SQL数据库中有这个表

Acc ID   Perod1   Perod2   Perod3   Perod4   Perod5
---------------------------------------------------
1-001      30       40       70       80       70
2-002      50       60       80       60       70
3-004      60       70       80       50       40

我需要在给定范围内选择上面的“Perod”列 . 像“Perod1 to Perod3”或“Perod2 to Perod5” . 需要编写一个SQL select查询,它可以选择给定范围的列 . 请帮我 .

我需要SQL查询,如下所示

Select 
    Perod1, Perod2 
from 
    tbl_accPeriod 
where 
    AccID = '1-001'

但“Perod”列我应该能够动态提供 . 有一次它可以是“Perod1到Perod2”,下次应该是“Perod1到Perod4” . 我想这样做而不添加IF条件 .

1 回答

  • 0

    我想你应该试试这个,

    DECLARE @SQLCols AS NVARCHAR(500)
    DECLARE @SQLQuery AS NVARCHAR(500)
    Declare @from int = 1
    Declare @to int = 2
    
    Set @SQLCols = 'Perod' + Cast(@from as Varchar(10))
    
    WHILE(@from < @to)
    
    BEGIN
    
            Set @SQLCols = @SQLCols + ',Perod' + Cast(@from + 1 as Varchar(10))   
    
            SELECT @from = @from + 1
    
    END
    
    Set @SQLQuery = 'Select ' + @SQLCols + ' from tbl_accPeriod'
    
    execute @SQLQuery
    

相关问题