?? 12-2-5.cfm.htm
字號:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>使用CASE控制語句執行</title>
<meta name="GENERATOR" content="Microsoft FrontPage 3.0">
</head>
<body>
<font FACE="宋體"><b>
<p ALIGN="JUSTIFY">使用CASE控制語句執行</p>
</b></font><font FACE="宋體" SIZE="3">
<p ALIGN="JUSTIFY">假設你想在網頁上顯示你喜歡站點的名稱,URL,和關于它的簡單描述。更進一步,你想在列出這些站點時在站點的名稱旁邊指明每一個網站的類型。比如,在政府機關網站的旁邊,你會顯示單詞Government;在商業網站的旁邊,顯示單詞Commercial。為了做到這一點,你可能會創建一個具有4列的表。前三列和原先的一樣,分別是名稱列,URL列,簡單描述列。另外你可能會添加一個新列,該列為每一個網站的類型。</p>
<p ALIGN="JUSTIFY">但在實際上,你不需要這樣做…有一種能獲得同樣的結果但是更好的方法。</p>
<p ALIGN="JUSTIFY">按照上面的做法,你的數據表中就會包含多余的信息。因為在URL列中已經包含了每一個網站類型的信息。通過查看每一個URL最后的三個字母,你就能確定某個網站是商業的,政府的和教育的等等。所以你不需要在數據表中添加新列重復同樣的信息。但是當你在讀取數據表中的記錄時你是如何在URL列中獲取該信息的呢?你可以使用CASE表達式來做到這一點。如下面的例子所示:</p>
<p ALIGN="JUSTIFY">SELECT</p>
<p ALIGN="JUSTIFY">(</p>
<p ALIGN="JUSTIFY">CASE </p>
<p ALIGN="JUSTIFY">WHEN site_url LIKE </font><font SIZE="3">“</font><font FACE="宋體"
SIZE="3">%edu</font><font SIZE="3">”</font><font FACE="宋體" SIZE="3"> THEN </font><font
SIZE="3">“</font><font FACE="宋體" SIZE="3">Educational</font><font SIZE="3">”</p>
</font><font FACE="宋體" SIZE="3">
<p ALIGN="JUSTIFY">WHEN site_url LIKE </font><font SIZE="3">“</font><font FACE="宋體"
SIZE="3">%gov</font><font SIZE="3">”</font><font FACE="宋體" SIZE="3"> THEN </font><font
SIZE="3">“</font><font FACE="宋體" SIZE="3">Government</font><font SIZE="3">”</p>
</font><font FACE="宋體" SIZE="3">
<p ALIGN="JUSTIFY">WHEN site_url LIKE </font><font SIZE="3">“</font><font FACE="宋體"
SIZE="3">%com</font><font SIZE="3">”</font><font FACE="宋體" SIZE="3"> THEN </font><font
SIZE="3">“</font><font FACE="宋體" SIZE="3">Commercial</font><font SIZE="3">”</p>
</font><font FACE="宋體" SIZE="3">
<p ALIGN="JUSTIFY">ELSE </font><font SIZE="3">“</font><font FACE="宋體" SIZE="3">Other</font><font
SIZE="3">”</p>
</font><font FACE="宋體" SIZE="3">
<p ALIGN="JUSTIFY">END</p>
<p ALIGN="JUSTIFY">) </font><font SIZE="3">“</font><font FACE="宋體" SIZE="3">TYPE</font><font
SIZE="3">”</font><font FACE="宋體" SIZE="3">,</p>
<p ALIGN="JUSTIFY">site_name </font><font SIZE="3">“</font><font FACE="宋體" SIZE="3">Name</font><font
SIZE="3">”</font><font FACE="宋體" SIZE="3">,</p>
<p ALIGN="JUSTIFY">site_URL </font><font SIZE="3">“</font><font FACE="宋體" SIZE="3">URL</font><font
SIZE="3">”</font><font FACE="宋體" SIZE="3">,</p>
<p ALIGN="JUSTIFY">site_desc </font><font SIZE="3">“</font><font FACE="宋體" SIZE="3">Description</font><font
SIZE="3">”</p>
</font><font FACE="宋體" SIZE="3">
<p ALIGN="JUSTIFY">FROM site_directory</p>
<p ALIGN="JUSTIFY"> </p>
<b>
<p ALIGN="JUSTIFY">注意</p>
<p ALIGN="JUSTIFY">字母.edu,.gov,和.com都是頂級域名的例子,目前還有許多的頂級域名在使用,比如,假如某個網站的域名以字母.cn結尾,這就指明該網站建在中國大陸。</p>
<p ALIGN="JUSTIFY">當上面的SELECT語句執行時,你就會接收到正確的結果。為了返回正確的值,我們使用CASE表達式對site_url列進行了檢測。比如,當site_url列的值以三個字母edu結尾時,就會返回值Educational。下面就是從該查詢返回結果的一個例子:</p>
</font>
<table CELLSPACING="0" BORDER="0" CELLPADDING="7" WIDTH="607">
<tr>
<td WIDTH="23%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">Type</font></td>
<td WIDTH="23%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">Name</font></td>
<td WIDTH="23%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">URL</font></td>
<td WIDTH="30%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">Description</font></td>
</tr>
<tr>
<td WIDTH="23%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">……………..</font></td>
<td WIDTH="23%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">………………</font></td>
<td WIDTH="23%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">厖厖厖 </font></td>
<td WIDTH="30%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">厖厖厖</font></td>
</tr>
<tr>
<td WIDTH="23%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">Commercial</font></td>
<td WIDTH="23%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">Microsoft</font></td>
<td WIDTH="23%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">www.microsoft.com</font></td>
<td WIDTH="30%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">The Creators
of Active Server Pages</font></td>
</tr>
<tr>
<td WIDTH="23%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">Commercial</font></td>
<td WIDTH="23%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">Yahoo</font></td>
<td WIDTH="23%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">www.yahoo.com</font></td>
<td WIDTH="30%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">One of the
best Internet Directories</font></td>
</tr>
<tr>
<td WIDTH="23%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">Commercial</font></td>
<td WIDTH="23%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">Collegescape</font></td>
<td WIDTH="23%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">www.collegescape.com</font></td>
<td WIDTH="30%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">Apply to over
50 colleges online</font></td>
</tr>
<tr>
<td WIDTH="23%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">Educational</font></td>
<td WIDTH="23%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">MIT</font></td>
<td WIDTH="23%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">www.mit.edu</font></td>
<td WIDTH="30%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">The
Massachusetts Institute of Technology</font></td>
</tr>
<tr>
<td WIDTH="23%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">Government</font></td>
<td WIDTH="23%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">The
whitehouse</font></td>
<td WIDTH="23%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">www.whitehouse.gov</font></td>
<td WIDTH="30%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">The residence
of the Prisedent</font></td>
</tr>
</table>
<font FACE="宋體" SIZE="3">
<p ALIGN="JUSTIFY">使用CASE語句,你可以測試不同的條件,并且基于不同的結果返回不同的值。對于每一個測試,都有對應的WHEN短句。在該例子中,當在WHEN短句后面的語句為真時,返回在相應的THEN短句后面的值。如果沒有一個WHEN短句后面的語句為真,則返回在ELSE短句后面的值。</p>
<p ALIGN="JUSTIFY">所有的多個WHEN短句和可以選擇的單個ELSE短句都必須包含在表達式CASE和END之間。關鍵字CASE指明CASE語句的開始。而關鍵字END指明CASE語句的結束。</p>
<p ALIGN="JUSTIFY">CASE語句具有另外一種稍微不同的格式。考察在下面的例子內是如何使用CASE語句的:</p>
<p ALIGN="JUSTIFY">SELECT</p>
<p ALIGN="JUSTIFY">(CASE</p>
<p ALIGN="JUSTIFY">site_name</p>
<p ALIGN="JUSTIFY">WHEN </font><font SIZE="3">“</font><font FACE="宋體" SIZE="3">Yahoo</font><font
SIZE="3">”</font><font FACE="宋體" SIZE="3"> THEN </font><font SIZE="3">“</font><font
FACE="宋體" SIZE="3">Internet Directory</font><font SIZE="3">”</p>
</font><font FACE="宋體" SIZE="3">
<p ALIGN="JUSTIFY">WHEN </font><font SIZE="3">“</font><font FACE="宋體" SIZE="3">Microsoft</font><font
SIZE="3">”</font><font FACE="宋體" SIZE="3"> THEN </font><font SIZE="3">“</font><font
FACE="宋體" SIZE="3">Software Giant</font><font SIZE="3">”</p>
</font><font FACE="宋體" SIZE="3">
<p ALIGN="JUSTIFY">ELSE </font><font SIZE="3">“</font><font FACE="宋體" SIZE="3">Other</font><font
SIZE="3">”</p>
</font><font FACE="宋體" SIZE="3">
<p ALIGN="JUSTIFY">END</p>
<p ALIGN="JUSTIFY">)</font><font SIZE="3">”</font><font FACE="宋體" SIZE="3">Type</font><font
SIZE="3">”</font><font FACE="宋體" SIZE="3">,</p>
<p ALIGN="JUSTIFY">site_name </font><font SIZE="3">“</font><font FACE="宋體" SIZE="3">Name</font><font
SIZE="3">”</font><font FACE="宋體" SIZE="3">,</p>
<p ALIGN="JUSTIFY">site_URL </font><font SIZE="3">“</font><font FACE="宋體" SIZE="3">URL</font><font
SIZE="3">”</font><font FACE="宋體" SIZE="3">,</p>
<p ALIGN="JUSTIFY">site_desc </font><font SIZE="3">“</font><font FACE="宋體" SIZE="3">Description</font><font
SIZE="3">”</p>
</font><font FACE="宋體" SIZE="3">
<p ALIGN="JUSTIFY">FROM site_directory</p>
<p ALIGN="JUSTIFY">該例子同樣顯示網站列表的類型,名稱,URL和簡要描述。所不同的是,在該例子中,每個網站的類型是由網站的名稱決定的,而不是URL。下面就是該批處理的結果:</p>
</font>
<table CELLSPACING="0" BORDER="0" CELLPADDING="7" WIDTH="568">
<tr>
<td WIDTH="22%" VALIGN="TOP"><font SIZE="3"><p ALIGN="JUSTIFY">Type</font></td>
<td WIDTH="17%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">Name</font></td>
<td WIDTH="30%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">URL</font></td>
<td WIDTH="31%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">Description</font></td>
</tr>
<tr>
<td WIDTH="22%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">Software
Giant</font></td>
<td WIDTH="17%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">Microsoft</font></td>
<td WIDTH="30%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY"></font><a
HREF="javascript:if(confirm('http://www.microsift.com/ \n\n文件并未按 Teleport Pro 取回, 因為 它的域或路徑超過啟始網址中設定的范圍。 \n\n你要從服務器上打開它嗎? '))window.location='http://www.microsift.com/'" tppabs="http://www.microsift.com/"><font FACE="宋體" SIZE="3" COLOR="#0000ff"><u>www.microsift.com</u></font></a></td>
<td WIDTH="31%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">The Creators
of Active Server Pages</font></td>
</tr>
<tr>
<td WIDTH="22%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">Internet
Directory</font></td>
<td WIDTH="17%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">Yahoo</font></td>
<td WIDTH="30%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY"></font><a
HREF="javascript:if(confirm('http://www.yahoo.com/ \n\n文件并未按 Teleport Pro 取回, 因為 它的域或路徑超過啟始網址中設定的范圍。 \n\n你要從服務器上打開它嗎? '))window.location='http://www.yahoo.com/'" tppabs="http://www.yahoo.com/"><font FACE="宋體" SIZE="3" COLOR="#0000ff"><u>www.yahoo.com</u></font></a></td>
<td WIDTH="31%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">One of the
best Internet Directories</font></td>
</tr>
<tr>
<td WIDTH="22%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">Other</font></td>
<td WIDTH="17%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">Collegescape</font></td>
<td WIDTH="30%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY"></font><a
HREF="javascript:if(confirm('http://www.collegescape.com/ \n\n文件并未按 Teleport Pro 取回, 因為 它的域或路徑超過啟始網址中設定的范圍。 \n\n你要從服務器上打開它嗎? '))window.location='http://www.collegescape.com/'" tppabs="http://www.collegescape.com/"><font FACE="宋體" SIZE="3" COLOR="#0000ff"><u>www.collegescape.com</u></font></a></td>
<td WIDTH="31%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">Apply to over
50 college online</font></td>
</tr>
<tr>
<td WIDTH="22%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">Other</font></td>
<td WIDTH="17%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">MIT</font></td>
<td WIDTH="30%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY"></font><a
HREF="javascript:if(confirm('http://www.mit.edu/ \n\n文件并未按 Teleport Pro 取回, 因為 它的域或路徑超過啟始網址中設定的范圍。 \n\n你要從服務器上打開它嗎? '))window.location='http://www.mit.edu/'" tppabs="http://www.mit.edu/"><font FACE="宋體" SIZE="3" COLOR="#0000ff"><u>www.mit.edu</u></font></a></td>
<td WIDTH="31%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">The
Massachusetts Institute of Technology</font></td>
</tr>
<tr>
<td WIDTH="22%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">Other</font></td>
<td WIDTH="17%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">The
whitehouse</font></td>
<td WIDTH="30%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY"></font><a
HREF="javascript:if(confirm('http://www.whitehouse.gov/ \n\n文件并未按 Teleport Pro 取回, 因為 它的域或路徑超過啟始網址中設定的范圍。 \n\n你要從服務器上打開它嗎? '))window.location='http://www.whitehouse.gov/'" tppabs="http://www.whitehouse.gov/"><font FACE="宋體" SIZE="3" COLOR="#0000ff"><u>www.whitehouse.gov</u></font></a></td>
<td WIDTH="31%" VALIGN="TOP"><font FACE="宋體" SIZE="3"><p ALIGN="JUSTIFY">The residence
of the President</font></td>
</tr>
</table>
<font FACE="宋體" SIZE="3">
<p ALIGN="JUSTIFY">(5 row(s) affected)</p>
<p ALIGN="JUSTIFY">請注意在該例子中,CASE例子是如何書寫的。在該CASE語句中,在WHEN短語后面并沒有跟一個語句,而是要與site_name列的值相比較的值。</p>
<p ALIGN="JUSTIFY">當你具有多個條件且每一個條件都是可真或可假時,你必須使用第一種CASE語句格式。假如你需要把一個值和多個值比較時,則使用第二種格式。</p>
</font>
</body>
</html>
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -