SQL?

Tags: 公式, 效率,

SQLSERVER所謂計算列,也就像ORACLE的虛擬列,插入表時不用插入該列值,它是根據其他列的值經過公式計算得到的新的值。方便查詢SQL,減少運算編寫的代碼,同時能夠提高一定的效率。

工具/原料

數據庫

方法/步驟

先看下普通的表,如果涉及到運算公式需要編寫sql。比如計算帶薪假期根據工齡的1.5倍,代碼如下。

SQL SERVER怎麼創建計算列虛擬列

為了節省sql編寫量,可以在表上創建新的計算列。公式就是sql上的算法挪過來。

SQL SERVER怎麼創建計算列虛擬列

點擊保存按鈕,再刷新一下,可以看到說明是計算列。

SQL SERVER怎麼創建計算列虛擬列

查詢代碼可以省略計算公式,直接查出來所有數據。

SQL SERVER怎麼創建計算列虛擬列

因為計算列默認是使用時運算,如果數據量大,每一條都運算那就非常影響效率。怎麼辦呢?別急,看下面還有個【是持久的】,這裡把它改成【是】。什麼意思呢?他就是相當於實際列了,可以加索引,主鍵等等。不是使用時計算,而是新增記錄及修改時,實時保存值。查詢時不用再計算,直接拿出來使用。

SQL SERVER怎麼創建計算列虛擬列

查詢方法不變,這樣效率最快了。計算列在下面這個系統表中可以查到sys.computed_columns

SQL SERVER怎麼創建計算列虛擬列

在這個表中可以看到計算公式。

SQL SERVER怎麼創建計算列虛擬列

相關問題答案