


SQL Server的ISNULL應(yīng)用舉例
ISNULL
使用指定的替換值替換 NULL。
語(yǔ)法
ISNULL ( check_expression , replacement_value )
參數(shù)
check_expression
將被檢查是否為 NULL的表達(dá)式。check_expression 可以是任何類(lèi)型的。
replacement_value
在 check_expression 為 NULL時(shí)將返回的表達(dá)式。replacement_value 必須與 check_expresssion 具有相同的類(lèi)型。
返回類(lèi)型
返回與 check_expression 相同的類(lèi)型。
注釋
如果 check_expression 不為 NULL,那么返回該表達(dá)式的值;否則返回 replacement_value。
示例
A. 將 ISNULL 與 AVG 一起使用
下面的示例查找所有書(shū)的平均價(jià)格,用值 $10.00 替換 titles 表的 price 列中的所有 NULL 條目。
USE pubs
GO
SELECT AVG(ISNULL(price, $10.00))
FROM titles
GO
下面是結(jié)果集:
--------------------------
14.24
(1 row(s) affected)
B. 使用 ISNULL
下面的示例為 titles 表中的所有書(shū)選擇書(shū)名、類(lèi)型及價(jià)格。如果一個(gè)書(shū)名的價(jià)格是 NULL,那么在結(jié)果集中顯示的價(jià)格為 0.00。
USE pubs
GO
SELECT SUBSTRING(title, 1, 15) AS Title, type AS Type,
ISNULL(price, 0.00) AS Price
FROM titles
GO
C. 在Full Join情況下使用ISNULL
表A:
tid
uid
anum
表B:
tbid
uid
bnum1
bnum2
需要通過(guò)uid全連接兩個(gè)表:
select a.tid,a.uid,a.anum,b.bnum1,b.bnum2 from a full join b on a.uid=b.uid
全連接會(huì)有很多為空的情況,可以使用ISNull來(lái)解決,改為:
select isnull(a.tid,b.tid),isnull(a.uid,b.uid),isnull(a.anum,0),isnull(b.bnum1,0),isnull(b.bnum2,0) from a full join b on a.uid=b.uid
再加上一種在asp.net2.0中的綜合用法:
<%@ Page Language="C#" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" ><head runat="server"> <title>Showing all items in a filtered list</title></head><body> <form id="form1" runat="server"> <div> <asp:DropDownList AppendDataBoundItems="True" AutoPostBack="True" DataSourceID="SqlDataSource2" DataTextField="state" DataValueField="state" ID="DropDownList1" runat="server"> <asp:ListItem Value="">ALL</asp:ListItem> </asp:DropDownList><asp:SqlDataSource ConnectionString="<%$ ConnectionStrings:Pubs %>" ID="SqlDataSource2" runat="server" SelectCommand="SELECT DISTINCT [state] FROM [authors]"> </asp:SqlDataSource> <br /> <br /> <asp:GridView AutoGenerateColumns="False" DataSourceID="SqlDataSource1" ID="GridView1" runat="server" DataKeyNames="au_id"> <Columns> <asp:BoundField DataField="au_id" HeaderText="au_id" ReadOnly="True" SortExpression="au_id" /> <asp:BoundField DataField="au_lname" HeaderText="au_lname" SortExpression="au_lname" /> <asp:BoundField DataField="au_fname" HeaderText="au_fname" SortExpression="au_fname" /> <asp:BoundField DataField="state" HeaderText="state" SortExpression="state" /> </Columns> </asp:GridView> <asp:SqlDataSource ConnectionString="<%$ ConnectionStrings:Pubs %>" ID="SqlDataSource1" runat="server" SelectCommand="SELECT au_id, au_lname, au_fname, state FROM authors WHERE state = IsNull(@state, state)" CancelSelectOnNullParameter="False"> <SelectParameters> <asp:ControlParameter ControlID="DropDownList1" Name="state" PropertyName="SelectedValue" Type="String" /> </SelectParameters> </asp:SqlDataSource> </div> </form></body></html>
關(guān)鍵字:SQL Server、類(lèi)型
新文章:
- CentOS7下圖形配置網(wǎng)絡(luò)的方法
- CentOS 7如何添加刪除用戶(hù)
- 如何解決centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS單網(wǎng)卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗(yàn)證詳解
- CentOS 7.1添加刪除用戶(hù)的方法
- CentOS查找/掃描局域網(wǎng)打印機(jī)IP講解
- CentOS7使用hostapd實(shí)現(xiàn)無(wú)AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網(wǎng)絡(luò)重啟出錯(cuò)
- 解決Centos7雙系統(tǒng)后丟失windows啟動(dòng)項(xiàng)
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統(tǒng)有什么不同呢
- Centos 6.6默認(rèn)iptable規(guī)則詳解