动网论坛,站长建站首选,国内使用量最多的论坛软件 动网论坛官方技术讨论区 站长工具 申请属于您自己的免费论坛
首页 | 新闻资讯 | 网站运营 | 网络编程 | 数据库 | 服务器 | 网页设计 | 图像媒体 | 网络应用 | 搜索优化 | 资源下载 | 动网主机 | DVBOX
    本站内  互联网 ASP论坛  ASP.Net论坛  PHP论坛
   数据库 → 阅读文章

 数据库学习:查询区分大小写

作者来源: 
阅读 1341 人次 , 2006-4-20 9:47:00 

  在sql2000和7.0的查询语句中,区分大写的查询方法

  --sql2000,就用下面的方法.
  --就是在字段名后加 collate Chinese_PRC_CS_AS_WS 


  --区分大小写、全半角字符的方法

  --测试数据
  create table 表(fd varchar(10))
  insert into 表
  select aa='aa'
  union all select 'Aa'
  union all select 'AA' --全角A
  union all select 'A,A' --全角A,半角,
  union all select 'A,A' --全角A,全角,
  go

  --查询
  --1.查大写字母
  select * from 表
  where fd collate Chinese_PRC_CS_AS_WS like '%A%' 
  --就是在字段名后加 collate Chinese_PRC_CS_AS_WS 

  --2.查全角
  select * from 表
  where fd collate Chinese_PRC_CS_AS_WS like '%A%'

  --3.查半角
  select * from 表
  where fd collate Chinese_PRC_CS_AS_WS like '%,%'
  go

  --删除测试数据


  drop table 表

  /*--测试结果

  1.查询大写字母的结果
  fd 
  ---------- 
  Aa

  2.查询全角字符的结果
  fd 
  ---------- 
  AA
  A,A
  A,A

  3.查询半角字符的结果
  fd 
  ---------- 
  A,A

  (所影响的行数为 1 行)
  --*/

  ============================

  --sql7.0,就用下面的方法.

  --如果是全部比较


  --下面是测试
  select * from(
  select fd='a'
  union all select 'A'
  ) a
  where cast(fd as varbinary(8000))=cast('A' as varbinary(8000))

  /*--测试结果
  fd 
  ---- 
  A

  (所影响的行数为 1 行)
  --*/

  --如果是部分匹配,就用charindex:

  --下面是测试
  select * from(
  select fd='a'
  union all select 'A'
  union all select 'aAaa'
  union all select 'aaaa'
  union all select 'cccA'
  ) a
  where charindex(cast('A' as varbinary(8000)),cast(fd as varbinary(8000)))>0

  /*--测试结果
  fd 
  ---- 
  A
  aAaa
  cccA

  (所影响的行数为 3 行)
  --*/


  
 本文Tags数据库  
 收藏本文  打印本文  论坛讨论  关闭窗口
· 上一篇:数据库学习:用Access分析网站实例
· 下一篇:将表中字段转换,并保留原值
· Webyog 发布SQLyog v5.02
· SQL 语法参考手册
· TOP N 和SET ROWCOUNT N 哪个更快
· 怎样用SQL 2000 生成XML
· ORACLE 数据库备份技术(1)


关于本站 | 联系我们 | 业务合作 | 客户案例 | 诚聘英才 | 广告合作 | 收藏本站
海口动网先锋网络科技有限公司版权所有
Copyright © 2000 - 2006 Cndw.Com
中华人民共和国电信与信息服务业务经营许可证编号 琼 ICP 020077