我有两张桌子
1)专栏
2)行
COLUMN TABLE
COLumnID
----------------
1
2
3
4
5
6
7
8
9
ROW TABLE
ROW iD
-------------
100
104
101
99
77
20
10
最终输出应如下所示:
01.Row 1 2 3 4 5 6 7 8 9
02.----------- ---- ---- ---- ---- ---- ---- ---- ---- ----
03.10 x x x
04.20 x x x x
05.77 x x
06.99 x x x
07.100 x x x x
08.101 x
09.104 x x x x
挑战是标记一个值为X的坐标,当且仅当行值可以被col值整除时,即它的模数为零。附加要求是:最终查询必须使用随机行值,并且应使用pivot运算符。
答案 0 :(得分:3)
以下内容应该在sql server中执行您要查找的内容。 使用CTE确定x应该在哪里,然后从该CTE转动
with mq as(select a.rowid
,b.columnid
,case when (a.rowid % b.columnid) = 0 then 'X' else null end as coord
from row_table a
inner join column_table b on 1=1)
select rowid,[1], [2], [3], [4],[5], [6], [7], [8], [9]
from mq
pivot( max(coord) for columnid in ([1], [2], [3], [4],[5], [6], [7], [8], [9])) as pv