2015-09-04 2 views
2

У меня есть данные в таблице, которая выглядит, как этотПовторные значения в SQL запросе

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 раз каждый)

спасибо.

ответ

6

Попробуйте

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

SQL FIDDLE DEMO

+0

Это работало отлично! – user3513237

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; 
+1

Я считаю, что вам нужно условие «ВКЛ», где ** RHS = LHS ** (т.е.) '1 = 1' или' 'A' = 'A'' –

+0

Да, я пропустил его. Надеть 1 = 1 – Ravi

Смежные вопросы