2015-09-04 37 views
2

我有看起來像這樣的重複值

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做到這一點,但我不想重複我的代碼,所以很多時候(在現實中,這些可以被重複最多每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

我相信你需要一個ON狀態,其中** RHS = LHS **(ie)'1 = 1'或''A'='A'' –

+0

是的,我錯過了。穿上1 = 1 – Ravi