再做搜索引擎的时候遇到这样一个麻烦!。。
一篇文章比如说是:
SQL Server 是一个关系数据库管理系统。它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发的,于1988 年推出了第一个OS/2 版本。在Windows NT 推出后,Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了,Microsoft 将SQL Server 移植到Windows NT系统上,专注于开发推广SQL Server 的Windows NT 版本。Sybase 则较专注于SQL Server在UNIX 操作系统上的应SQL Server安装界面用。
       里面的关键字是 :数据库管理系统 , 操作系统
我只想把含数据库管理系统 和操作系统 的那一句话提取出来! 怎么实现????????记住 是含我的关键字的那一句话提取出来哦!.....

解决方案 »

  1.   


    substring(str,charindex(N'数据库管理系统',str) + 8,charindex(N'操作系统',str) - 4)
      

  2.   

    顺表问一下!。。 substring(str,charindex(N'数据库管理系统',str) + 8,charindex(N'操作系统',str) - 4)N表示什么意思哦!???????
      

  3.   

    楼主对.NET熟吗? 其实这个需求不必一定交给数据库来处理,
    复杂的逻辑处理可考虑在程序中完成为宜,如String类型的split方法.
      

  4.   

    唉 !7#不过你倒是提醒了我! 我可以先把数据提取出来然后在放到.NET中处理!。。的确! 呵呵  不过想学习一下 SQL有没有解决办法!
      

  5.   

    数据库中处理,可行但没必要啦.各有所长,MSSQL提供的字符串处理函数,毕竟不是很高级.
    何不找.NET里现成的函数呢,另:据说MSSQL还可以引用外部DLL的,没试过.
      

  6.   

    --------------------------------------------------------------------
    --提取中文
    IF OBJECT_ID('DBO.CHINA_STR') IS NOT NULL
    DROP FUNCTION DBO.CHINA_STR
    GO
    CREATE FUNCTION DBO.CHINA_STR(@S NVARCHAR(100))
    RETURNS VARCHAR(100)
    AS
    BEGIN
    WHILE PATINDEX('%[^吖-座]%',@S) > 0
    SET @S = STUFF(@S,PATINDEX('%[^吖-座]%',@S),1,N'')
    RETURN @S
    END
    GO
    PRINT DBO.CHINA_STR('呵呵ABC123ABC')
    GO
    --------------------------------------------------------------------
      

  7.   

    算了 结贴的了 SQL实现基本不可能,哪怕是用存储过程