自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

通過SQL Server原子來建立分子查詢實(shí)操

數(shù)據(jù)庫 SQL Server
我們今天是要和大家一起探討的是正確通過SQL Server原子來建立分子查詢的實(shí)際操作流程,下面就是文章的主要內(nèi)容的描述。

以下的文章主要是介紹如何正確通過SQL Server原子來建立分子查詢的實(shí)際操作過程,我們大家都知道每位SQL Server數(shù)據(jù)庫的開發(fā)員都有自己獨(dú)特的首選操作方法。我的方法叫做分子查詢。

這些是由SQL Server原子查詢組合起來的查詢,通過它們我可以處理一個表格。將原子組合起來,可以建立分子。當(dāng)然也會有限制(化學(xué)家所稱的化合價),但一般來說,這個原理還是適用的。

在本文中,我將探討這種策略的幾種變化。我從最基本的內(nèi)容開始(即最詳細(xì)的內(nèi)容),然后逐步深化。為讓你了解這種方法的靈活性,我會在不同層次使用幾種技巧。(警告:這并不是唯一的解決方法,我只是在討論一些可行的選擇。)

我從普遍使用的SQL Server數(shù)據(jù)庫Northwind開始(雖然為了保留原貌,我把它復(fù)制到Northwind_New中,實(shí)際這才是我使用的SQL Server數(shù)據(jù)庫。)在我的拷貝中,我做出這些重要的修改。

我刪除了復(fù)合主鍵,增加一個叫做PK的新列,并將其設(shè)為Identity列。

我增加了一個稱作ExtendedAmount的計(jì)算列。

 

  1. USE [Northwind_New] GO /****** Object: Table [dbo].[OrderDetails_New] Script Date: 08/23/2006 16:15:42 ******/ SET ANSI_NULLS>  

清單A

清單A中包含SQL Server原子建立這個新表格的新建(Create)語句。我用這個命令將它和值從原始表格中迅速移植出來:

 

  1. INSERT INTO [Northwind_New].[dbo].[OrderDetails_New] SELECT * FROM [Northwind_New].[dbo].[Order Details] 

既然我有一個多行的表格,是時候開始實(shí)驗(yàn)了。(一旦新列ExtendedAmount被計(jì)算,其值會自動移植。)最初,我想用OrderID計(jì)算ExtendedAmount列的總數(shù)。我建立一個視圖,如清單B所示。

 

  1. USE [Northwind_New] GO /****** Object:?View [dbo]. [OrderDetailsSumByOrderID_vue]Script Date: 08/23/2006 16:31:18 ******/ SET ANSI_NULLS>  

清單B
我每行得到一個OrderID,ExtendedAmount的列數(shù)得到總計(jì)。(稱之為OrderAmount,將航運(yùn),稅收等相加得到OrderTotal)。

 

我會在等式中引入一個表格UDF,如清單C所示。注意,我可以用兩種方法調(diào)用函數(shù):提交CustomerID將表格限定為那個顧客的訂單,或提交一個NULL獲得所有顧客訂單清單。如果我提交CustomerID,那么訂單清單就出現(xiàn)在OrderDate中;如果我提交NULL,清單就被分組并在CustomerID中由OrderDate排序。

 

  1. set ANSI_NULLS>  

清單C

  1. -- ================================================ --   
  2. Template generated from Template Explorer using: -- Create Inline Function (New Menu).  
  3. SQL -- -- Use the Specify Values for Template Parameters -- command (Ctrl-Shift-M) to fill in the parameter  
  4. -- values below. -- -- This block of comments will not be included in -- the definition of the function.  
  5. -- ================================================ SET ANSI_NULLS>   

清單D

更深入一步,我每個顧客打印一行,用一列顯示每名顧客的總銷售額。查看清單D。并不是所有項(xiàng)目都得到組合。在最外層,我能夠以兩種方式調(diào)用這個函數(shù):提交合法CustomerID或UNLL以下是它們各自的實(shí)例:

 

  1. SELECT CustomerID, CustomerTotal FROM DBO.CustomerGrandTotal_fnt(null) SELECT CustomerID, CustomerTotal FROM DBO.CustomerGrandTotal_fnt('VINET') 

現(xiàn)在你有了一組精確的工具來幫助你挖掘適當(dāng)層次的細(xì)節(jié)。計(jì)算列OrderDetails.ExtendedAmount隱藏了一個復(fù)雜層次,從那我又深入到我希望隱藏的細(xì)節(jié)。這就是我把這些對象叫做SQL Server原子和分子查詢的原因。我使用“查詢”一詞來概括這樣一個事實(shí),即討論的對象是視圖還是表格UDF并不重要。(雖然由于命名規(guī)則,suffix _fnt表示一個表格UDF,而suffix _vue表示一個視圖。)

必須承認(rèn),Northwind數(shù)據(jù)庫中沒有大量的行,但我認(rèn)為這種技巧可以得到很好地擴(kuò)充。更為重要的是,我喜歡它提供的粒度。我能夠做我想做的,并按要求重新使用或重新組合SQL Server原子。

【編輯推薦】

  1. SQL Server 2005 數(shù)據(jù)庫鏡像的運(yùn)行方式
  2. 產(chǎn)生SQL Server死鎖的原因與破解
  3. SQL Server備份文件中對現(xiàn)存數(shù)據(jù)庫的導(dǎo)入
  4. 改善SQL Server安全規(guī)劃的6步驟
  5. SQL Server 2000文件損壞的修復(fù)方案

 

責(zé)任編輯:佚名 來源: 新華網(wǎng)
相關(guān)推薦

2010-06-18 13:18:29

SQL Server

2010-04-14 11:22:12

Oracle同時訪問

2010-06-28 14:13:18

SQL Server實(shí)

2010-05-04 17:49:39

Oracle安裝

2011-04-06 14:16:49

SQL Server自動備份

2010-05-24 17:20:07

MySQL導(dǎo)入

2010-05-14 17:56:16

SQL優(yōu)化索引

2010-04-16 12:58:48

Oracle sql

2010-04-30 09:34:24

Oracle多條件查詢

2024-05-27 08:09:29

2010-01-06 10:38:16

Linux安裝JDK

2010-09-14 10:36:23

sql server存

2010-04-12 09:36:29

Oacle merge

2010-09-13 13:44:22

sql server外

2010-04-15 14:18:30

Oracle創(chuàng)建

2010-05-10 17:00:53

Oracle死鎖進(jìn)程

2010-04-13 14:00:00

Oracle inse

2024-04-28 10:52:25

CentOS系統(tǒng)RHEL系統(tǒng)

2010-04-09 10:13:13

Oracle數(shù)據(jù)字典

2021-09-22 15:36:31

勒索軟件攻擊數(shù)據(jù)泄露
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號