SQLServer常见问题应对

SQLServer常见问题应对

版权所有 ©ashuixu 转载请保持完整并注明出处

** SQL语句部分

**

**

**

** 1、SQL语句跨两个以上的数据库 **

** ** _ 问题: _ 有时某个 SQL语句需要使用两个以上的数据库,这样的SQL语句怎么写呢?

_ 解答: _ 采用 DataBaseName..TableName来访问表就可以了。

_ 举例:

_

** 2、匹配查询 **

** ** _ 问题: _ 我要实现字符串的匹配查询,该怎么做呢?

_ 解答: _ 用 like,请参见SQLServer2000的联机帮助。在索引中输入“like”,内有非常详细的说明和示例。

_ 补充: _ 该问题的提出是因为笔者在查询所有面料包含文字“ 50%纯棉”的时候引出的,因为它 包含一个或多个特殊通配符 “ %” 。当笔者写出如下语句时:

执行结果为(非真实数据) :

正确的写法是 :

或 :

** 3、 ** ** 交叉数据报表 **

** ** _ 问题: _ 如何获取交叉数据查询结果?

_ 解答: _ 更为详细的内容请参见 SQLServer2000联机帮助。在索引中输入“交叉数据报表”,即可查看。

_ 补充: _ 在程序中可以先用 Distinct或Grou p选出满足条件的所有交叉数据列,然后构造出交叉数据查询语句;如果想一个写存储过程用于返回数据结果集,可以使用游标、生成查询字符串,然后用系统存储过程sp_executesql执行该字符串。

** 4、都是尾部空格惹的祸 **

** ** 问题: 在用 like查询数据时,感觉自己写的SQL语句没有问题,就是得不到想要的数据,怎么回事呢?

_ 解答: _

_ _ A.由于数据存储方式的原因,使用包含 char(固定长度) 和 varchar(可变长度) 数据模式的字符串比较可能无法通过 LIKE 比较。了解每种数据类型的存储方式以及导致 LIKE 比较失败的原因十分重要。

B.当对 Unicode 数据(nchar 或 nvarchar 数据类型)使用 LIKE 时,尾随空格是有意义的。但是对于非 Unicode 数据,尾随空格没有意义。

_ 补充: _ 请读者自己在下面做一些试验,亲身感受一下其中的区别。

(未完待续 …… )

Published At
Categories with 数据库类
Tagged with
comments powered by Disqus