2016-12-05 3 views
0

SELECTクエリの結果行がいくつかあります。SQL Server:結果行を掛ける

SELECT a.code, CONCAT('text output', a.result) 
FROM table1 a 

結果が見え一つ

code | text 
a | 'text output a' 
b | 'text output b' 

のような列は、連結テキスト出力が含まれています。私は単純に各結果行をわずかに異なるテキスト出力(ハードコード可能)で複製したいと思っています。

期待される結果は、本質的に

code | text 
a | 'example 1: text output a' 
a | 'example 2: text output a' 
b | 'example 1: text output b' 
b | 'example 2: text output b' 

ようにする必要があり、私が欲しい - 各結果のために - 前に1と例2例を配置します。どのようにこれを効率的に行うことができますか?

あなたのケースで最も簡単な方法は、以下の通りですおそらく

答えて

1

:あなたは、各行になりたい回数に従って番号3を変更することができます

SELECT a.code, CONCAT('example 1: text output', a.result) 
FROM table1 a 
union all 
SELECT a.code, CONCAT('example 2: text output', a.result) 
FROM table1 a 
0

これは、再帰クエリで

DECLARE @table TABLE(
    code CHAR(1) 
    , txt VARCHAR(20) 
) 

INSERT INTO @table VALUES 
('a', 'text output a') 
,('b', 'text output b') 
,('c', 'text output c') 

;WITH q1 AS(
    SELECT 1 ex, tbl1.code, tbl1.txt 
    FROM @table tbl1 
     UNION ALL 
      SELECT ex+1, q1.code, q1.txt 
      FROM q1 
      WHERE q1.ex < 3 
) 
SELECT q1.code, concat('Example ', q1.ex, ': ', q1.txt) [text] 
FROM q1 
ORDER BY q1.code, q1.ex 

を行うことができます表示される

関連する問題