日期:2014-05-18  浏览次数:20653 次

全文检索和字符串问题
问题1
CREATE   TABLE   [dbo].[test1](
[story]   [text]   COLLATE   Chinese_PRC_CI_AS   NULL
)   ON   [PRIMARY]   TEXTIMAGE_ON   [PRIMARY]


INSERT   INTO   [dbo].[test1]
                      ([story])
          VALUES
                      (   'you   你   can   能   do   做   what   什么   you   你   want   想   to   去   do   做的 ')

如何返回两列
stotyD                                                       stotyC

you   can   do   what   you   want   to   do       你能做什么你想去做的

问题   2

you   出现了2次
如何返回2

“能”出现了一次返回   1


------解决方案--------------------
create table a
(story varchar(100))
INSERT INTO a
select 'you 你 can 能 do 做 what 什么 you 你 want 想 to 去 do 做的 '
go
create function fun_getPY(@str nvarchar(4000))
returns nvarchar(4000)
as
begin
declare @word nchar(1),@PY nvarchar(4000),@result nvarchar(4000)
set @PY= ' '
set @result= ' '
while len(@str)> 0
begin
set @word=left(@str,1)
if unicode(@word) between 19968 and 19968+20901
set @result=@result+@word
else
set @PY=@PY+@word
set @str=right(@str,len(@str)-1)
end
return @PY + ' '+ @result
end
go
select dbo.fun_getPY(story) from a
--结果
you can do what you want to do 你能做什么你想去做的