--查询 SELECT CASE WHEN PATINDEX('%[^吖-座]%',列名)>0 THEN 列名 ELSE '汉字' END FROM 原始数据 --更新 UPDATE 原始数据 SET 列名='汉字' WHERE PATINDEX('%[^吖-座]%',列名)>0
UPDATE table1 SET col1 = '字符' WHERE Len(col1)*2 <> DataLength(col1)--如果是nvarchar需要转换成varchar再求长度
UPDATE 原始数据 SET 列名='汉字' WHERE PATINDEX('%[^吖-座]%',列名)=0改一下更新的情况
use master go if OBJECT_ID('a') is not null drop table a go create table a(字符 varchar(20)) go insert into a select 'A-汉字' union all select '汉字' union all select '字母' union all select '数字' union all select '汉字0' goupdate a set 字符='字符' where PATINDEX('%[^吖-々]%',字符)=0
UPDATE 原始数据 SET 列名 = '汉字' WHERE 列名 NOT LIKE '%[^吖-座]%'
create table #t(col varchar(20))insert into #t select 'A-汉字' union all select '汉字' union all select '字母' union all select '数字' union all select '汉字0' update #t set col='字符' where patindex('%[^吖-座]%',col)=0 select * from #t /* col -------------------- A-汉字 字符 字符 字符 汉字0(5 row(s) affected) */
SELECT CASE WHEN PATINDEX('%[^吖-座]%',列名)>0 THEN 列名 ELSE '汉字' END
FROM 原始数据
--更新
UPDATE 原始数据
SET 列名='汉字'
WHERE PATINDEX('%[^吖-座]%',列名)>0
SET col1 = '字符'
WHERE Len(col1)*2 <> DataLength(col1)--如果是nvarchar需要转换成varchar再求长度
SET 列名='汉字'
WHERE PATINDEX('%[^吖-座]%',列名)=0改一下更新的情况
go
if OBJECT_ID('a') is not null drop table a
go
create table a(字符 varchar(20))
go
insert into a
select 'A-汉字' union all
select '汉字' union all
select '字母' union all
select '数字' union all
select '汉字0'
goupdate a set 字符='字符' where PATINDEX('%[^吖-々]%',字符)=0
UPDATE 原始数据 SET 列名 = '汉字'
WHERE 列名 NOT LIKE '%[^吖-座]%'
create table #t(col varchar(20))insert into #t
select 'A-汉字' union all
select '汉字' union all
select '字母' union all
select '数字' union all
select '汉字0'
update #t
set col='字符'
where patindex('%[^吖-座]%',col)=0
select * from #t
/*
col
--------------------
A-汉字
字符
字符
字符
汉字0(5 row(s) affected)
*/