zoukankan      html  css  js  c++  java
  • 查询区分大小写

    在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 行)
    --*/

  • 相关阅读:
    GO语言并发
    NEERC2017:L
    bzoj2823[AHOI2012]信号塔
    bzoj1336[Balkan2002]Alien最小圆覆盖
    bzoj1069[SCOI2007]最大土地面积
    ACM2017Tsukuba:H
    ACM2015沈阳:B-Bazinga
    bzoj2724[Violet 6]蒲公英
    [bzoj4066]简单题
    [bzoj2125]最短路
  • 原文地址:https://www.cnblogs.com/accumulater/p/6097761.html
Copyright © 2011-2022 走看看