在SQL查询中重复值

时间:2015-09-04 05:18:40

标签: sql-server

我的表中的数据看起来像这样

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次)

谢谢。

2 个答案:

答案 0 :(得分:6)

试试这个

SELECT *
FROM   YOURTABLE
       CROSS JOIN (VALUES ('ABC'),
                          ('DEF'),
                          ('GHI')) tc(product_id) 

SQL FIDDLE DEMO

答案 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;