如何在sql 2000中获得以下结果?

如何在sql 2000中获得以下结果?,sql,sql-server-2000,Sql,Sql Server 2000,表1 2列 pack no 20 20 20 20 20 20 30 30 30 30 30 Serial no 12 13 14 15 16 17 18 19 20 21 22 我需要的结果是 pack no 20 30 serial no 12-17 18-22 如果这些字段都是数字 SELECT packNo, CAST(min_serial AS VARCHAR(12)) +

表1

2列

pack no     20  20  20  20  20  20  30  30  30  30  30
Serial no   12  13  14  15  16  17  18  19  20  21  22
我需要的结果是

pack no      20        30
serial no    12-17     18-22

如果这些字段都是数字

SELECT  packNo,
        CAST(min_serial AS VARCHAR(12)) + '-' + CAST(min_serial AS VARCHAR(12)) serial_no
FROM
        (
            SELECT  packNo, 
                    MIN(serialNo) min_serial,
                    MAX(serialNo) max_serial
            FROM    TableName
            GROUP   BY packNo
        ) subtable
您可以使用min和max函数来实现这一点。最好在列名中使用下划线,而不是空格

请尝试:

select 
    [pack no], 
    CAST(MIN([Serial no]) AS NVARCHAR(10))+'-'+CAST(MAX([Serial no]) AS NVARCHAR(10)) as [Serial no]
from 
    YourTable
group by [pack no]

值20和30是静态的,还是有其他值?
select 
    [pack no], 
    CAST(MIN([Serial no]) AS NVARCHAR(10))+'-'+CAST(MAX([Serial no]) AS NVARCHAR(10)) as [Serial no]
from 
    YourTable
group by [pack no]