首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL 合併查詢實戰:使用臨時表整合異構表資料並標識來源

     編輯:關於SqlServer

在 Silverlight 等異步開發場景中,若需從結構不同但輸出欄位相同的兩張表(如「考試表」ExamTB 與「任務表」TaskTB)一次性讀取資料並合併輸出,多次查詢不僅浪費效能,還增加同步複雜度。利用臨時表可優雅解決此問題。

兩表欄位對應關係如下:

  • ExamTB:EId (int)、EName (varchar(50))、SubjectId (int)、EStartTime (datetime)
  • TaskTB:TId (int)、TName (varchar(50))、SubjectId (int)、TStartTime (datetime)

目標是將兩表資料合併,並新增 Type 欄位標識來源(1=考試,2=任務)。

-- 建立暫存表
CREATE TABLE #TempTB (
    TId int,
    TName varchar(50),
    SubjectId int,
    TType int
);

-- 插入考試表資料
INSERT INTO #TempTB (TId, TName, SubjectId, TType)
SELECT EId, EName, SubjectId, 1
FROM ExamTB;

-- 插入任務表資料
INSERT INTO #TempTB (TId, TName, SubjectId, TType)
SELECT TId, TName, SubjectId, 2
FROM TaskTB;

-- 輸出合併結果
SELECT * FROM #TempTB;

-- 清理暫存表
DROP TABLE #TempTB;

此法避免了游標循環,效能優異,且邏輯清晰易維護。實際應用中可根據業務需求擴展欄位與過濾條件。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved