比如:要查包含字母“abc”的书名,原来我使用的是
SELECT * FROM TB_BOOK WHERE BookName Link "*abc*"
但这样是区分大小写的,如何不区分大小写呢?
现在,假设数据源只可能是三种VFP6,ACCESS,SQL2000
不同的数据源是否有不同的写法?

解决方案 »

  1.   

    SELECT * FROM TB_BOOK WHERE BookName Like"%abc%"
      

  2.   

    请问%是什么意思?是不区分大小写吗?请指教 :)我这里对Like(不好意思,上面打错了)的解释只有这几种result = string Like pattern
    Like 运算符的语法具有以下几个部分:
    部分 描述
    result 必要;任何数值变量。
    string 必要;任何字符串表达式。
    pattern 必要;任何字符串表达式,遵循“说明”中的模式匹配约定。pattern 中的字符 符合 string 中的
    ? 任何单一字符。
    * 零个或多个字符。
    # 任何一个数字 (0杴9)。
    [charlist]  charlist.中的任何单一字符。
    [!charlist] 不在 charlist 中的任何单一字符。
      

  3.   

    SQL Server2000:
    select * from TB_BOOK where lower(BookName) like '%abc%'
    或者
    select * from TB_BOOK where upper(BookName) like '%ABC%'
      

  4.   

    请问到底是哪句啊?
    是否对应不同数据源要写不同的语句?
    Access里应该和VB很相似吧,大小写是否用UCase?
      

  5.   

    SQL Server:select * from TB_BOOK where BookName like '%abc%'Accsee:select * from TB_BOOK where BookName like '*abc*'不管是SQL Server还是Access,都是不区分大小写的,可以把所有的包含Ucase(BookName)中包含ABC的全部选出来,呵呵,看来以后我也要注意了~~
      

  6.   

    但我在VB下试过是区分大小写的啊,所以才觉得无所适从。? "aBc" Like "*AbC*"
    False
    ? "AbC" Like "*AbC*"
    True
      

  7.   

    哥们,你的SQL实际实在服务器执行的呀~~
    你试试再说吗?
      

  8.   

    如果要适应不同数据源,那就要编写不同SELECT了(因为要把UCase 与 Upper写进SELECT中去),是吗?SELECT * FROM TB_Book WHERE UCase(BookName) Like "*ABC*"

    SELECT * FROM TB_Book WHERE UPPER(BookName) Like "%ABC%"
      

  9.   

    VB测试:
    Dim rs As New ADODB.Recordset
    Dim conn As New ADODB.Connection
    Dim strSQL As String
    strSQL = "select count(*) from q where q like '%abc%'"
    conn.CursorLocation = adUseClient
    conn.ConnectionString = "PROVIDER=SQLOLEDB;Server=" & "172.10.16.10" & ";DataBase=" & "cwjk" & ";UID=" & "sa" & ";PWD=" & "" & ";"
    conn.Open
    rs.Open strSQL, conn
    Text1.Text = rs.Fields(0).Value结果
    --Text1.Text=3
    SQL Server测试:
    select count(*) from q where q like '%abc%'结果
    3
      

  10.   

    因为要把UCase 与 Upper写进SELECT中去
    //这个就不要了,因为不管是SQL Server还是Access,都是不区分大小写的,我测试过了~~
      

  11.   

    哦,但VFP确实是区分的,因我直接在VFP里用SELECT试过
      

  12.   

    VF,我只用过FoxPro2.5,好久了~~
      

  13.   

    非常感谢楼上的兄第!(好人就是多啊 ^-^ )刚刚试过,该死的VFP6,真的区分大小写,真讨厌!现在试试其它的
      

  14.   

    Access果然是的!但现在问题来了,如果为了增加查询精度,要区分大小写(啊哟,不要砸我 :) 
    那该如何?(VFP现在好办,但Access呢?)
      

  15.   

    SELECT * FROM TB_Book WHERE UPPER(BookName) Like "%ABC%"
      

  16.   

    因为要把UCase 与 Upper写进SELECT中去
    //这个就不要了,因为不管是SQL Server还是Access,都是不区分大小写的,我测试过了~~我也试了,而且我的程序一直都是这样写的