create function Get_StrLength ( @str varchar(1024), @split varchar(10) ) returns int as begin declare @location int declare @start int declare @length int set @str=ltrim(rtrim(@str)) set @location=charindex(@split,@str) set @length=1 while @location<>0 begin set @start=@location+1 set @location=charindex(@split,@str,@start) set @length=@length+1 end return @length END
delete from TB_Content WHERE dbo.Get_StrLength(CONTENT,'|')>4;
希望能帮到你
delete from table where len(content)>4
强烈抗议DUDU,问问题补充,能不能另外起一行啊,要不然有时候解答会显得很可笑。
强烈抗议DUDU,问问题补充,能不能另外起一行啊,要不然有时候解答会显得很可笑。
----------------------------
我对这一提议很赞
sql 本身不提供字符串split函数,要自己建一个自定义函数实现,网上有很多代码,随便找个就行了。
sql里没有split函数,你可以先
select content from [table]
查到数据后,然后用list来转换。 遍历每一条
foreach (var i in item )
{
}
取出每一条的内容,用string的 split方法 去处理 ,然后判断长度>4 的 就清除
围观学习中
如果纯粹的是SQL,有一定的难度,可以参考函数charindex:
http://baike.baidu.com/view/1030958.htm?fr=aladdin
然后根据需要进行处理,这个一定需要一段代码或者写一个函数后才能在一段简单的SQL中实现。