国产高清在线免费观看-国产高清在线免费无码-国产高清在线男人的天堂-国产高清在线视频-国产高清在线视频精品视频-国产高清在线视频伊甸园

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

SQLServerCOALESCE()函數(shù)的2種好用方法

admin
2011年8月2日 17:8 本文熱度 3597

導(dǎo)讀:以下的文章主要描述的是正確使用SQL Server COALESCE()函數(shù)的2種好用方法,SQL Server COALESCE()函數(shù)在實際應(yīng)用中可以接受一系列的值,假如遇到列表中所有項都為空(null),那么只使用一個值。


然后,它將返回第一個非空值。這一技巧描述了創(chuàng)造性使用SQL Server 中COALESCE()函數(shù)的兩種方法。



COALESCE()函數(shù)可以接受一系列的值,如果列表中所有項都為空(null),那么只使用一個值。然后,它將返回第一個非空值。這一技巧描述了創(chuàng)造性使用SQL Server 中COALESCE()函數(shù)的兩種方法。



這里有一個簡單的例子:有一個Persons數(shù)據(jù)表,它有三個字段FirstName、MiddleName和LastName。表中包含以下值:


John A. MacDonald Franklin D. Roosevelt Madonna Cher Mary Weilage

如果你想用一個字符串列出他們的全名,下面給出了如何使用SQL Server COALESCE()函數(shù)完成此功能:


SELECT FirstName + '' '' +COALESCE(MiddleName,'''')+ '' '' +COALESCE(LastName,'''')

如果你不想每個查詢都這樣寫,列表A顯示了如何將它轉(zhuǎn)換成一個函數(shù)。這樣當(dāng)你需要使用這個腳本的時候(不管每個列的實際值是什么),可以直接調(diào)用該函數(shù)并傳遞三個字段參數(shù)。在下面的例子中,我傳遞給函數(shù)的參數(shù)是人名,但是你可以用字段名替代得到同樣的結(jié)果:








SELECT dbo.WholeName(''James'',NULL,''Bond'')   
UNION
SELECT dbo.WholeName(''Cher'',NULL,NULL) UNION
SELECT dbo.WholeName(''John'',''F.'',''Kennedy'')
測試結(jié)果如下:James Bond Cher John F. Kennedy

你可能會注意到我們的一個問題,在James Bond這個名字中有兩個空格。通過修改@result這一行可以改正這個問題,如下所示:


SELECT @Result = LTRIM(@first + '' '' + COALESCE(@middle,'''') + '' '') + COALESCE(@last,'''') 下面是SQL Server COALESCE()函數(shù)的另一個應(yīng)用。在本例中,我們將顯示一個支付給員工的工資單。問題是對于不同的員工工資標(biāo)準(zhǔn)是不同的(例如,有些員工是按小時支付,按工作量每周發(fā)一次工資或是按責(zé)任支付)。列表B中是創(chuàng)建一個樣表的代碼。下面是一些示例記錄,每個是一種類型:








1 18.00 40 NULL NULL NULL NULL   
2 NULL NULL 4.00 400 NULL NULL
3 NULL NULL NULL NULL 800.00 NULL
4 NULL NULL NULL NULL 500.00 600

用下面的代碼在同一列中列出支付給員工的總額(不管它們的支付標(biāo)準(zhǔn)):



結(jié)果如下:

EmployeeID Payment 1 720.00 2 1600.00 3 800.00 4 1100.00






SELECT   EmployeeID,   
COALESCE(HourlyWage * HoursPerWeek,0)+
COALESCE(AmountPERPiece * PiecesThisWeek,0)+
COALESCE(WeeklySalary + CommissionThisWeek,0)
AS Payment FROM [Coalesce_Demo].[PayDay]

你可能需要在應(yīng)用程序中多處使用這一計算方法,雖然這種表示可以完成任務(wù),但是看起來不是很美觀。下面列出了如何使用一個單獨的求和列來完成這項工作:








ALTERTABLE Coalesce_Demo.PayDay   
ADD Payment AS
COALESCE(HourlyWage * HoursPerWeek,0)+
COALESCE(AmountPerPiece * PiecesThisWeek,0)+
COALESCE(WeeklySalary + CommissionThisWeek,0)

這樣只要使用SELECT *就可以顯示預(yù)先計算好的結(jié)果。


小結(jié)


本文介紹了使用COALESCE()函數(shù)一些特殊場合和特殊方式。就我的經(jīng)驗看來,SQL Server COALESCE()函數(shù)最常出現(xiàn)在一個具體的內(nèi)容中,如一個查詢或視圖或存儲過程中。


你可以將COALESCE()放在一個函數(shù)中來使用它,也可以通過將它放在一個單獨的計算列中優(yōu)化性能,并總能獲得結(jié)果。


該文章在 2011/8/2 17:08:40 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運作、調(diào)度、堆場、車隊、財務(wù)費用、相關(guān)報表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點,圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點晴免費OA是一款軟件和通用服務(wù)都免費,不限功能、不限時間、不限用戶的免費OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 日本伊人精品一区二区三区 | 18黑白丝水手服自慰喷水网站 | 小鲜肉自慰网站 | 在线成色综合网站 | 国内揄拍国内精品人妻浪潮av | 国产真实乱xxxav | 无码国产精品一区二区免费vr | 亚洲中文无码人成 | 亚洲中文字幕在线精品一区 | 国产精品久久欧美久久一区 | 美女高潮无套内谢在线观看密桃 | 91精品国产福利在线观看 | 国产欧美日韩综合精品一级 | 日韩av在线播放乱码 | 亚洲国产综合久久久精品在线视频国产一区 | 亚洲国产精品自产在线播放 | 亚洲国产精久久久久久久软件 | 亚洲国产精品无码中文字 | 中文字幕欧美亚洲 | 国产成人亚洲综合无码 | 亚洲熟女少 | 国产av无码专区亚洲av桃花庵 | 亚洲一区二区三区高清 | 亚洲欧美真实a在线观看 | 精品蜜臀av在线天堂 | 亚洲一区二区三区四区在线观看视频 | 自拍视频在线观看完整版 | 免费看男女做羞羞的事网站 | 国产精品日韩一区二区三 | 国产露脸无码a区久久蘑菇 国产露脸对白91精品 | 亚洲精品久久久久久AV | 国产成人精品免费视频app软件 | 亚洲中文字幕无线无码毛片^午夜亚洲国产理论秋霞^精品国产 | 久久精品中文无码资源站 | 精品欧美不卡一区在线观看 | 亚洲无码在线观看视频 | 亚洲中文字幕在线第六区 | 综合久久给合久久狠狠狠97色 | 最美女人体内射精一区二区 | 国产亚av手机在线观看 | 国产精品毛片va一区二区三区 |