[英]SQL Server: Multiply a result row
我有几个来自SELECT
查询的结果行。
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放在前面。 如何有效地做到这一点?
在您的情况下,最简单的方法可能是:
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
这可以通过递归查询来完成
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
您可以根据希望每行显示多少次来更改数字3
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.