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