打印本文 打印本文 关闭窗口 关闭窗口
SQL操作(初级、中级、高级)
作者:武汉SEO闵涛  文章来源:敏韬网  点击数32295  更新时间:2007/11/14 11:12:15  文章录入:mintao  责任编辑:mintao
-US style=''''font-family: 宋体;"Times New Roman"''''>US Dollars

当向BIT型,DATETIME型,INT型,或者NUMERIC型字段添加字符串时,你需要进行同样的转换操作。例如,下面的语句在一个SELECT语句的查询结果中加入字符串The vote is,该SELECT语句返回一个BIT型字段的值:

SELECT The vote is+CONVERT(CHAR(1),vote) FROM opinion

下面是这个语句的结果示例:

The vote is 1

The vote is 1

The vote is 0

(3 row(s) affected)

如果你不进行显式的转换,你会收到如下的错误信息:

Implicit conversion from datatype varchar to bit is not allowec.

Use the CONVERT function to run this query.

操作字符串数据

SQL Sever有许多函数和表达式,使你能对字符串进行有趣的操作,包括各种各样的模式匹配和字符转换。在这一节中,你将学习如何使用最重要的字符函数和表达式。

匹配通配符

假设你想建立一个与Yahoo功能相似的Internet目录。你可以建立一个表用来保存一系列的站点名称,统一资源定位器(URL),描述,和类别,并允许访问者通过在HTML form中输入关键字来检索这些内容。

假如有一个访问者想从这个目录中得到其描述中包含关键字trading card的站点的列表。要取出正确的站点列表,你也许试图使用这样的查询:

SELECT site_name FROM site_directory  WHERE site_desc=trading card

这个查询可以工作。但是,它只能返回那些其描述中只有trading card这个字符串的站点。例如,一个描述为We have the greatest collection of trading cards in the world!的站点不会被返回。

要把一个字符串与另一个字符串的一部分相匹配,你需要使用通配符。你使用通配符和关键字LIKE来实现模式匹配。下面的语句使用通配符和关键字LIKE重写了上面的查询,以返回所有正确站点的名字:

SELECT SITE_name FROM site_directory

                 WHERE site_desc LIKE %trading cark%

    在这个例子中,所有其描述中包含表达式trading card的站点都被返回。描述为We have the greatest collection of trading cards in the world!的站点也被返回。当然,如果一个站点的描述中包含I am trading cardboard boxes online ,该站点的名字也被返回。

注意本例中百分号的使用。百分号是通配符的例子之一。它代表0个或多个字符。通过把trading card括在百分号中,所有其中嵌有字符串trading card的字符串都被匹配。

现在,假设你的站点目录变得太大而不能在一页中完全显示。你决定把目录分成两部分。在第一页,你想显示所有首字母在AM之间的站点。在第二页,你想显示所有首字母在NZ之间的站点。要得到第一页的站点列表,你可以使用如下的SQL语句:

SELECT site_name FROM site_directory WHERE site_name LIKE [A-M]%

在这个例子中使用了表达式[A-M],只取出那些首字母在AM之间的站点。中括号([])用来匹配处在指定范围内的单个字符。要得到第二页中显示的站点,应使用这个语句:

SELECT site_name FROM  site_directory

                 WHERE site_name LIKE [N-Z]%

在这个例子中,括号中的表达式代表任何处在NZ之间的单个字符。

假设你的站点目录变得更大了,你现在需要把目录分成更多页。如果你想显示那些以ABC开头的站点,你可以用下面的查询来实现:

SELECT site_name FROM site_directory WHERE site_name LIKE  [ABC]%

在这个例子中,括号中的表达式不再指定一个范围,而是给出了一些字符。任何一个其名字以这些字符中的任一个开头的站点都将被返回。

通过在括号内的表达式中同时包含一个范围和一些指定的字符,你可以把这两种方法结合起来。例如,用下面的这个查询,你可以取出那些首字母在CF之间,或者以字母Y开头的站点:

SELECT site_name FROM site_directory WHERE site_name LIKE [C-FY]%

在这个例子中,名字为CollegescapeYahoo的站点会被选取,而名字为Magicw3的站点则不会被选取。

 << 上一页  [11] [12] [13] [14] [15] [16] [17] [18] [19] [20]  ...  下一页 >> 

打印本文 打印本文 关闭窗口 关闭窗口