设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1669|回复: 7
打印 上一主题 下一主题

[查询] SQL查询怎么改成大小写相关?

[复制链接]
跳转到指定楼层
1#
发表于 2002-7-11 18:34:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
select * from doc where bh='A123'

结果bh为'a123'的也出现了,怎么解决?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2002-7-11 19:04:00 | 只看该作者
select * from doc where bh like 'A123'
3#
 楼主| 发表于 2002-7-11 19:29:00 | 只看该作者
我试过,不行。
4#
 楼主| 发表于 2002-7-11 19:31:00 | 只看该作者
是否可以设置什么选项,使字符串比较变成大小写相关?
5#
发表于 2002-7-11 20:26:00 | 只看该作者
select * from doc where bh = upper("a123")
用UPPER把字符串全部換成大寫的,對您的這樣作a123就會變成A123了,
6#
发表于 2002-7-12 16:44:00 | 只看该作者
今天才然想起,要在SQL中嚴格區分大小寫,是要在SQL的選擇中調整的。
7#
发表于 2002-7-12 19:03:00 | 只看该作者
大小写敏感:(转贴)
CREATE FUNCTION StrComp(@Str1 VARCHAR(50),@Str2 VARCHAR(50))
--ALTER FUNCTION StrComp(@Str1 VARCHAR(50),@Str2 VARCHAR(50))
RETURNS INTEGER
AS
BEGIN
  DECLARE @i INTEGER
  --DECLARE @Str1 VARCHAR(50)
  --DECLARE @Str2 VARCHAR(50)
  DECLARE @y INT
  --SET @Str1='a'
  --SET @Str2='A'
  SET  @i=0
  --SELECT ASCII(SUBSTRING(@Str1,@i+1,1))
  SET @y=1
  DECLARE @iLen INT
  SET @iLen = LEN(LTRIM(RTRIM(@Str1)))
  IF LEN(LTRIM(RTRIM(@Str1))) < LEN(LTRIM(RTRIM(@Str2))) --THEN
     SET @iLen = LEN(LTRIM(RTRIM(@Str2)))
  WHILE (@i < @iLen)
    BEGIN
      IF (ASCII(SUBSTRING(@Str1,@i+1,1))=ASCII(SUBSTRING(@Str2,@i+1,1))) --THEN
         SET @i = @i +1
      ELSE
         BEGIN
           SET @y=0
           BREAK
         END
      END
     RETURN @y
END

测试:
select *
from Table1
Where dbo.StrComp(Field1,'aAbB') =1
8#
发表于 2002-7-12 19:18:00 | 只看该作者
xiaobao寫的不錯,但是它的問題是怎樣在SQL語句中,對大小寫進行嚴格的匹配。
比如用在where ,或like子句中,Abc同abc是不同的,而不是大小寫轉換的問題,是嗎?
只有用SQL的選項來處理了。xiaobao幫我看看這個函數。多謝
http://www.office-cn.net/bbs/dispbbs.asp?Boardid=5&ID=7954&rootID=7954&skin=1


[此贴子已经被HG于2002-7-12 11:17:58编辑过]

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-5-5 07:31 , Processed in 0.098244 second(s), 31 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表