1

tblIndex次の値を持つテーブルがあります。

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

SELECT3行を1行にしたい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 に答える