我在追求的是什么:
--heading--
xxx 111
xxx 222
xxx 333
yyy 111
yyy 222
yyy 333
标题是一个恒定值,它需要保持在顶部。数字(111,222,333)是从表格中选择的值。字母(xxx,yyy)是常数值。我需要的是连续3'x'行,然后连续3'y'行。当我使用UNION ALL时,我得到了:
--heading--
xxx 111
yyy 111
xxx 222
yyy 222
xxx 333
yyy 333
这是我到目前为止所做的:
SELECT '--heading--' +
UNION ALL
SELECT 'xxx ' + Column1
FROM Table1
UNION ALL
SELECT 'yyy ' + Column1
FROM Table1
答案 0 :(得分:2)
添加一个重量列并按其排序:
SELECT Column1 FROM (
SELECT 0 AS SortOrder, '--heading--' AS Column1
UNION ALL
SELECT 1, 'xxx ' + Column1
FROM T_UnitTypes
UNION ALL
SELECT 2, 'yyy ' + Column1
FROM T_UnitTypes
) AS x
ORDER BY SortOrder
答案 1 :(得分:1)
请像这样使用 -
SELECT 0 Ord, '--heading--' Datas
UNION ALL
SELECT * FROM
(
SELECT 1 ord, CONCAT(a.t, yourcolName) z FROM Table1
CROSS APPLY ( VALUES ( 'xxx' ) ) as a(t)
UNION ALL
SELECT 2 ord, CONCAT(b.t, yourcolName) z FROM Table1
CROSS APPLY ( VALUES ( 'yyy' ) ) as b(t)
)u ORDER BY ord
答案 2 :(得分:1)
一次扫描桌面的解决方案。不知道会不会更快
select
val
from (
select
q.rn, val = q.val + t.Column1
from
Table1 t
cross apply (values ('xxx', 1),('yyy', 2)) q(val, rn)
union all
select 0, '--heading--'
) t
order by rn