日期:2014-05-17 浏览次数:21004 次
select * from Article where Exptxt like '%因为%' and like'%所以%'
------解决方案--------------------
如果查询出来,在后台在对返回集合做二次处理应该比较容易一点.
------解决方案--------------------
select * from Article where Exptxt like '%因为%,%.%!%所以%'
------解决方案--------------------
DECLARE @s nvarchar(max) SET @s='XXXXXXXXXXXXX。因为香蕉,所以哈密瓜,,,,,。 因为菠萝,所以橘子,,。' --以句号(。)作为每个因为,所以的分隔符 DECLARE @splitor varchar(2) SET @splitor='。' DECLARE @tb TABLE ( sentence nvarchar(max) ) WHILE(1=1) BEGIN IF CHARINDEX(@splitor, @s) = 0 BREAK; INSERT INTO @tb --截取每个句号作为一个sentence,对每个sentence循环处理 SELECT CASE WHEN SUBSTRING(@s,1, CHARINDEX(@splitor, @s)-1) LIKE '%因为%所以%' THEN SUBSTRING(@s,1, CHARINDEX(@splitor, @s)-1) ELSE NULL END sentence --将每个sentence替换为空字符串 SET @s = REPLACE(@s, SUBSTRING(@s,1, CHARINDEX(@splitor, @s)), '') END SELECT * FROM @tb ---所有 因为所以 分句都包含在@tb表变量中
------解决方案--------------------
SQL Server 也是可以使用正则的,
参考http://blog.csdn.net/maco_wang/article/details/7439560
或者从数据库读出来再匹配
http://www.cnblogs.com/chenxizhang/archive/2011/05/27/2060319.html
------解决方案--------------------
select * from Article where Exptxt like '%因为%所以%' and Exptxt not like '%[!?]%'