通过sql有没有方法select出只包含有非中文的记录?如:     table 
列1      列2       列3
3e      你好       343
g       dfj¥%(   245
ek      dk是       Dfd 通过一个select返回:
     table
列1      列2       列3
g       dfj¥%(    245    ---〉只返回这一行,因为这一行不包含中文
好像不太容易,谢谢大大指教咯 ^_^

解决方案 »

  1.   


    declare   @a   table(a   varchar(100))   
        
    insert   @a   values('a,.&a')   
    insert   @a   values('A(A')   
    insert   @a   values('dd大幅ff')   
        
    select   *   from   @a   where   a   like   '%[0-9a-z-/]%'   
    怎么取非中文现在会了吧?也可以在where中使用len和datalenth进行比较,where len(名称)<>datalength(名称),不相等就说明有中文
      

  2.   

    谢谢 biweilun ,呵呵, 我马上换到数据库栏目中,谢谢
      

  3.   

    patindex('%[^a-zA-Z()¥]%',列2)>0
      

  4.   

    ---测试数据---
    if object_id('[tb]') is not null drop table [tb]
    go
    create table [tb]([列1] varchar(2),[列2] varchar(7),[列3] varchar(3))
    insert [tb]
    select '3e','你好','343' union all
    select 'g','dfj¥%(','245' union all
    select 'ek','dk是','Dfd'
     
    ---查询---
    select * from [tb] where 列2  not like '%[吖-做]%'---结果---
    列1   列2      列3   
    ---- ------- ---- 
    g    dfj¥%(  245(所影响的行数为 1 行)
      

  5.   

    ------------------------------------------------------------------------
    --  Author: HappyFlyStone 
    --   Date : 2009-05-28 23:12:07
    -- Version: Microsoft SQL Server 2005 - 9.00.2047.00 (Intel X86) 
    --       Apr 14 2006 01:12:25 
    --       Copyright (c) 1988-2005 Microsoft Corporation
    --       Enterprise Edition on Windows NT 5.2 (Build 3790: Service Pack 2)
    --      
    -------------------------------------------------------------------------- Test Data: TA
    IF OBJECT_ID('[TA]') IS NOT NULL 
        DROP TABLE [TA]
    Go
    CREATE TABLE TA(列1 NVARCHAR(2),列2 NVARCHAR(10),列3 NVARCHAR(10))
    Go
    INSERT INTO TA
          SELECT '3e','你好','343' UNION ALL
          SELECT 'g','dfj¥%(','245' UNION ALL
          SELECT 'ek','dk是','Dfd' 
    GO
    --Start
    SELECT 

    FROM
    TA
    where patindex('%[吖-做]%',列2)=0--Result:
    /*
    列1   列2         列3
    ---- ---------- ----------
    g    dfj¥%(     245(1 行受影响)*/
    --End 
      

  6.   


    declare @tb table(列1  varchar(10),列2 nvarchar(10),列3 varchar(10))
    insert into @tb select '3e','你好','343'
          union all select 'g','dfj¥‰(','245'
          union all select 'ek','dk是','Dfd'
    select * from @tb where patindex('%[¥]%',列2)>0