有这样一个字符串(中,国,中,人民,国,现代工业化进程,国)
处理过之后变成(中,国,人民,现代工业化进程)
以下是我的方法,有什么不对的地方还请各位指点
------------------删除重复的字符
declare
@v1 nvarchar
(100)
declare
@v2 nvarchar
(100)
declare
@v3 nvarchar
(100)
declare
@split nvarchar
(100)
--N',,,,,中,国,中,人民,,,,,国,现代工业化进程,国,,,'
set
@v1=N', ,, ,,中,国,中,人民, ,, , ,国,现代工业化进程,国, ,,'
set
@v3=''
set
@split=','
/*
@v1 :存储临时字符串
@v2 :获取两个分隔符中的字符串
@v3 :存储最后没有重复的字符串
*/
if
left(@v1,1)<>@split
set
@v1=@split+@v1
if
right(@v1,1)<>@split
set
@v1=@v1+@split
while
len(@v1)>len(@split)*2
begin
set
@v2=substring
(@v1,len( @split),charindex
( @split,@v1,len
( @split)+1))
if
len(@v2)>len
(@split)*2
begin
set
@v2=right
(@v2,len(@v2)-1);
if
ltrim
(rtrim
(@v2))<>@split
set
@v3=@v3+ltrim
(rtrim
(@v2));
set
@v1= replace
(@v1,@v2,'')
end
else
--如果有连续的分割符,删
from子句中写在最后的表(基础表,driving table)将被最先处理,在from子句中包含多个表的情况下,你必须选择记录条数最少的表作为基础表。
提高SQL执行效率的几点建议:
◆尽量不要在where中包含子查询;
关于时间的查询,尽量不要写成:where to_char(dif_date,'yyyy-mm-dd')=to_char('2007-07-01',' ......