如题

解决方案 »

  1.   

    字母吧?like '[a-z]'数字?
    one , two ...?
      

  2.   


    Create table xxpp
    (a varchar(20))
    insert into xxpp select '1'
    insert into xxpp select 'a'
    insert into xxpp select '中国'
    insert into xxpp select 'A'
    insert into xxpp select '@'
    SElect * from xxpp where ascii(a)>123
    /*
    中国
    */
    SElect * from xxpp where ascii(a)>=65
    /*
    a
    中国
    A
    */
      

  3.   

    恩 多位的 半角字母和半角数字用like?
      

  4.   

    如何区分大小写字母、全角半角 roy_88如何区分大小写、全角半角(SQL2000测试通过):
    /*
    用定义排序规则(Chinese_PRC_CS_AS_WS、Chinese_PRC_BIN)来区分,
    介绍两种排序规则:
    第一个Chinese_PRC所属区域(中文(香港特别行政区),中文(中华人民共和国),中文(新加坡))
    CS(CaseSensitivity缩写):CS 指定区分大小写,CI 指定不区分大小写。
    AS(AccentSensitivity缩写):AS 指定区分重音,AI 指定不区分重音。
    WS(WidthSensitivity缩写):WS 指定区分大小写,Omitted 指定不区分大小写。(区分全角半角)
    BIN:指定使用二进制排序次序。
    KanatypeSensitive:KS 指定区分假名类型,Omitted 指定不区分大小写。  _BIN   二进制排序     
      _CI_AI   不区分大小写、不区分重音、不区分假名类型、不区分宽度     
      _CI_AI_WS   不区分大小写、不区分重音、不区分假名类型、区分宽度     
      _CI_AI_KS   不区分大小写、不区分重音、区分假名类型、不区分宽度     
      _CI_AI_KS_WS   不区分大小写、不区分重音、区分假名类型、区分宽度     
      _CI_AS   不区分大小写、区分重音、不区分假名类型、不区分宽度     
      _CI_AS_WS   不区分大小写、区分重音、   不区分假名类型、区分宽度     
      _CI_AS_KS   不区分大小写、区分重音、区分假名类型、不区分宽度     
      _CI_AS_KS_WS   不区分大小写、区分重音、区分假名类型、区分宽度     
      _CS_AI   区分大小写、不区分重音、   不区分假名类型、不区分宽度     
      _CS_AI_WS   区分大小写、不区分重音、不区分假名类型、区分宽度     
      _CS_AI_KS   区分大小写、不区分重音、区分假名类型、不区分宽度     
      _CS_AI_KS_WS   区分大小写、不区分重音、区分假名类型、区分宽度     
      _CS_AS   区分大小写、区分重音、不区分假名类型、不区分宽度     
      _CS_AS_WS   区分大小写、区分重音、不区分假名类型、区分宽度     
      _CS_AS_KS   区分大小写、区分重音、区分假名类型、不区分宽度     
      _CS_AS_KS_WS   区分大小写、区分重音、区分假名类型、区分宽度  
    */
    create table ta(id int ,name varchar(20))
    insert ta
    select 1, 'A' union all
    select 2, 'A'union all
    select 3, 'a,' union all
    select 4, 'A,'
    select * from ta where name like'A%'--所有记录都会在结果集
    select * from ta where name collate Chinese_PRC_CS_AS_WS like '%,%'--只有第4条记录满足
    select * from ta where name collate Chinese_PRC_CS_AS_WS like'a%'--第3条记录满足(加_ws与上一方法结果相同)
    select * from ta where name collate Chinese_PRC_CS_AS_WS like'A%'--第2条记录满足
    select * from ta where name collate Chinese_PRC_BIN like'A'--第1条记录满足(用二进制排序结果同上相同)结果如下:
    id          name                 
    ----------- -------------------- 
    1           A
    2           A
    3           a,
    4           A,(所影响的行数为 4 行)id          name                 
    ----------- -------------------- 
    4           A,(所影响的行数为 1 行)id          name                 
    ----------- -------------------- 
    3           a,(所影响的行数为 1 行)id          name                 
    ----------- -------------------- 
    2           A(所影响的行数为 1 行)id          name                 
    ----------- -------------------- 
    1           A(所影响的行数为 1 行)--drop table ta
      

  5.   

    多位没法写,只能转换后再查询.参考如下:--1.查询区分全角与半角字符
    --测试数据
    DECLARE @t TABLE(col varchar(10))
    INSERT @t SELECT 'aa'
    UNION ALL SELECT 'Aa'
    UNION ALL SELECT 'AA'   --全角A
    UNION ALL SELECT 'A,A' --全角A,半角逗号(,)
    UNION ALL SELECT 'A,A' --全角A,全角逗号(,)--1.查大写字母
    SELECT * FROM @t
    WHERE col COLLATE Chinese_PRC_CS_AS_WS like '%A%'--2.查全角字母
    SELECT * FROM @t
    WHERE col COLLATE Chinese_PRC_CS_AS_WS like '%A%'--3.查半角逗号(,)
    SELECT * FROM @t
    WHERE col COLLATE Chinese_PRC_CS_AS_WS like '%,%'--3.查全角逗号(,)
    SELECT * FROM @t
    WHERE col COLLATE Chinese_PRC_CS_AS_WS like '%,%'
    GO
    /*=============================================*/
    --2 实现全角与半角字符转换的处理函数
    CREATE FUNCTION f_Convert(
    @str NVARCHAR(4000), --要转换的字符串
    @flag bit              --转换标志,0转换成半角,1转换成全角
    )RETURNS nvarchar(4000)
    AS
    BEGIN
    DECLARE @pat nvarchar(8),@step int,@i int,@spc int
    IF @flag=0
    SELECT @pat=N'%[!-~]%',@step=-65248,
    @str=REPLACE(@str,N' ',N' ')
    ELSE
    SELECT @pat=N'%[!-~]%',@step=65248,
    @str=REPLACE(@str,N' ',N' ')
    SET @i=PATINDEX(@pat COLLATE LATIN1_GENERAL_BIN,@str)
    WHILE @i>0
    SELECT @str=REPLACE(@str,
    SUBSTRING(@str,@i,1),
    NCHAR(UNICODE(SUBSTRING(@str,@i,1))+@step))
    ,@i=PATINDEX(@pat COLLATE LATIN1_GENERAL_BIN,@str)
    RETURN(@str)
    END
    GO
      

  6.   


    比如3位like '%[0-9a-zA-Z][0-9a-zA-Z][0-9a-zA-Z]%'
      

  7.   

    PATINDEX ( '%[^0-9a-zA-Z]%' , col)  > 0 
      

  8.   

    现在CSDN有这毛病
    我有时也看不到回复
      

  9.   

    正则就不写了。要正则的话,找找老贴粘上来就可以了。
    写个匹配统计的。
    DECLARE @t TABLE(v VARCHAR(10))
    INSERT @t SELECT 'aab,'
    UNION ALL SELECT 1
    UNION ALL SELECT 123
    UNION ALL SELECT '1a'
    UNION ALL SELECT ' 国人'
    UNION ALL SELECT 'a*'
    UNION ALL SELECT '中a国'
    SELECT TOP 36 ID=IDENTITY(INT,0,1),x='*' INTO # FROM sysobjects
    UPDATE # SET x=CASE WHEN id<=9 THEN RTRIM(id) ELSE CHAR(64+id-9) ENDSELECT v FROM @t a
    INNER JOIN # b
    ON CHARINDEX(x,v)>0
    GROUP BY v
    HAVING COUNT(v)=LEN(v)
    GO
    DROP TABLE #
    GO
    /*
    v
    1
    123
    1a
    */
      

  10.   


    基本上就是这样了我觉得很麻烦啊,有无必要做这个check,感觉很费时间
      

  11.   

    ”[0-9a-zA-Z]+“这样可以匹配多位了
      

  12.   

    sql中可以有通配符,但没有正则。要正则需要引用外部对象。DECLARE @t TABLE(v VARCHAR(10))
    INSERT @t SELECT 'aab,'
    UNION ALL SELECT 1
    UNION ALL SELECT 123
    UNION ALL SELECT '1a'
    UNION ALL SELECT ' 国人'
    UNION ALL SELECT 'a*'
    UNION ALL SELECT '中a国'
    SELECT TOP 100 ID=IDENTITY(INT) INTO # FROM sysobjectsSELECT * FROM @t 
    WHERE v NOT IN(
    SELECT v FROM @t a
    INNER JOIN # b
    ON 1=1 AND SUBSTRING(v,id,1)!='' AND SUBSTRING(v,id,1) LIKE '[^a-z0-9]'
    )GO
    DROP TABLE #
    GO
      

  13.   

    唉,试试:
    declare @t table(id int identity,n varchar(10))
    insert @t select '233' 
    insert @t select 'abdd' 
    insert @t select 'dsa23' 
    insert @t select '23acf' 
    insert @t select 'dsd随机' 
    insert @t select '12随机'
    insert @t select '随机12'
    insert @t select '随机ab'select * from @t where PATINDEX ( '%[^0-9a-zA-Z]%' ,n)=0
    /*
    id          n          
    ----------- ---------- 
    1           233
    2           abdd
    3           dsa23
    4           23acf
    */
      

  14.   


    IT技术挺全的,不错,鼓励一下:http://www.ciitc.com