我的表中的数据看起来像这样
TeacherNo TeacherName
1 Smith
2 Doe
我需要运行一个查询,它将产生类似于此的输出。请注意,下面的ProductID值只是我脚本中的硬编码值。
TeacherNo TeacherName ProductID
1 Smith ABC
1 Smith DEF
1 Smith GHI
2 Doe ABC
2 Doe DEF
2 Doe GHI
我知道我可以通过重复我的sql语句并执行UNION ALL来做到这一点,但是我不想重复我的代码这么多次(实际上这些代码可能重复多达6次)
谢谢。
答案 0 :(得分:6)
试试这个
SELECT *
FROM YOURTABLE
CROSS JOIN (VALUES ('ABC'),
('DEF'),
('GHI')) tc(product_id)
答案 1 :(得分:0)
你可以这样做
Create table #dummytbl(ProductId nvarchar(50));
INSERT INTO #dummytbl VALUES ('ABC');
INSERT INTO #dummytbl VALUES ('DEF');
INSERT INTO #dummytbl VALUES ('GHI');
select i.TeacherNo, i.TeacherName, d.ProductId from Teacher i
inner join #dummytbl
order by i.TeacherNo;