1

我有一个tblIndex包含以下值的表:

indID   indDesc  indNo
  1     Desc1     999
  2     Desc2     999
  3     Desc3     995
  4     Desc4     995
  5     Desc5     999

我想将SELECT三排排成一排where indNo=999......如下所示:

indDesc  indDesc   indDesc   indNo
Desc1    Desc2     Desc5      999

谁能帮我?

4

2 回答 2

1

我假设您实际上想要为所有记录获取单个值。如果您使用的是 SQL-Server,您可以像这样创建一个标量值函数

CREATE FUNCTION [dbo].[getIndexDescriptionByNumber]
(
    @indNo int,
    @delimiter varchar(5)
)
RETURNS VARCHAR(8000)
AS
BEGIN
    DECLARE @indDesc VARCHAR(8000);
    SELECT  @indDesc = COALESCE(@indDesc + @delimiter, '') + table.indDesc
    FROM    table
    WHERE   table.indNo = @indNo
    ORDER BY indDesc ;

    return @indDesc  ;
END

你可以这样称呼它:

SELECT dbo.getIndexDescriptionByNumber(999, ' ') AS indDesc;

结果:

indDesc
Desc1 Desc2 Desc5 
于 2012-05-10T10:17:04.983 回答
0

如果您使用的是 SQL Server,请查找PIVOT 表

于 2012-05-10T10:10:14.907 回答