• 查询区分大小写


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

  • 相关阅读:
    [luogu]P1852跳跳棋
    StdDraw绘图
    Java-Timer-Stop
    人之初
    单例模式--延时初始化
    ubuntu忘记密码
    QT5 TK1 串口通信
    金秋十月
    级联分类器训练-----OpenCV
    Hu矩SVM训练及检测-----OpenCV
  • 原文地址:https://www.cnblogs.com/accumulater/p/6097761.html
Copyright © 2020-2023  润新知