0
我在TEvent
和TEmployee
表上創建了2個計算列,並在這些計算列上使用Index
沒有任何問題。另一方面,由於在數據操作過程中遇到了一些問題,我們需要使用除這些之外的其他表。在這一點上,我想知道是否可以通過在單獨的表上創建它們來使用這些計算列,但從TEvent
和TEmployee
表除外?除此之外,使用View
而不是Computed Column
更好?你能否就這兩種方法澄清我們?在單獨的表上創建計算列?
--Creating Computed Columns:
ALTER TABLE TEvent ADD CardNoRightEight AS RIGHT(CAST(CardNo AS int), 8)
ALTER TABLE TEmployee ADD CardNoRightEight AS RIGHT(CAST(CardNo AS int), 8)
--Creating Index
CREATE INDEX TEmployee_CardNoRightEight_IDX ON TEmployee (CardNoRightEight)
CREATE INDEX TEvent_CardNoRightEight_IDX ON TEvent (CardNoRightEight)
更新:這裏是我的加入和CTE(公共表表達式)
;WITH a AS (
SELECT emp.EmployeeName, emp.Status, dep.DeptName, job.JobName, emp.CardNoRightEight
FROM TEmployee emp
LEFT JOIN TDeptA AS dep ON emp.DeptAID = dep.DeptID
LEFT JOIN TJob AS job ON emp.JobID = job.JobID
),
b AS (
SELECT eve.EventID, eve.EventTime, evt.EventCH, dor.DoorName, eve.CardNoRightEight
FROM TEvent eve
LEFT JOIN TEventType AS evt ON eve.EventType = evt.EventID
LEFT JOIN TDoor AS dor ON eve.DoorID = dor.DoorID)
SELECT * FROM b LEFT JOIN a ON a.CardNoRightEight = b.CardNoRightEight
ORDER BY b.EventID ASC
你能解釋一下多一點嗎?其實我寧願使用視圖,但我不能。因爲我不知道如何將上面的查詢和View結合起來?我還將我的SELECT查詢添加到上面的問題。有什麼想法嗎? – hexadecimal
有什麼想法嗎? – hexadecimal
嘿, 對不起昨天被抓到了東西。 您實際上可以使用上述CTE本身作爲View的最終輸出。你只需要將上面的查詢本身封裝在 「CREATE VIEW [dbo]。[vw_View] AS」語法中,並且它應該適用於你。 如果有幫助的話,可以進行回覆:) –