读书人

如何用T-SQL语句 取出 quot;\客厅\古典\p

发布时间: 2012-01-09 21:05:41 作者: rapoo

怎么用T-SQL语句 取出 "\客厅\古典\pgkt-gd0375.jpg" 中以这种格式显示 客厅,古典
怎么用T-SQL语句 取出 "\客厅\古典\pgkt-gd0375.jpg" 中以这种格式显示 客厅,古典

"\客厅\现代古典\pgkt-xg0194.jpg"中 显示 客厅,现代古典

谢谢阿

[解决办法]

SQL code
create table ta( col varchar(100))insert ta select'\客厅\现代古典\pgkt-xg0194.jpg' union all select'\客厅\古典\pgkt-gd0375.jpg'go--加一个分隔函数:create  function F_split(                @s varchar(8000),          --包含多个数据项的字符串                @pos int,                 --要获取的数据项的位置                @split varchar(10)        --数据分隔符)RETURNS varchar(100)ASBEGIN    IF @s IS NULL RETURN(NULL)    DECLARE @splitlen int                --分隔符长度    SELECT @splitlen=LEN(@split+'a')-2    WHILE @pos>1 AND charindex(@split,@s+@split)>0        SELECT @pos=@pos-1,            @s=stuff(@s,1,charindex(@split,@s+@split)+@splitlen,'')    RETURN(nullif(left(@s,charindex(@split,@s+@split)-1),''))ENDGOselect dbo.F_split(col,2,'\'),dbo.F_split(col,3,'\')from tadrop table tadrop function F_split/*                                             ------------------------------------------------ ----------------客厅                                      现代古典客厅                                      古典(所影响的行数为 2 行)*/
[解决办法]
SQL code
create table ta( col varchar(100))insert ta select'\客厅\现代古典\pgkt-xg0194.jpg' union all select'\客厅\古典\pgkt-gd0375.jpg'go--加一个分隔函数:create  function F_split(                @s varchar(8000),          --包含多个数据项的字符串                @pos int,                 --要获取的数据项的位置                @split varchar(10)        --数据分隔符)RETURNS varchar(100)ASBEGIN    IF @s IS NULL RETURN(NULL)    DECLARE @splitlen int                --分隔符长度    SELECT @splitlen=LEN(@split+'a')-2    WHILE @pos>1 AND charindex(@split,@s+@split)>0        SELECT @pos=@pos-1,            @s=stuff(@s,1,charindex(@split,@s+@split)+@splitlen,'')    RETURN(nullif(left(@s,charindex(@split,@s+@split)-1),''))ENDGOselect dbo.F_split(col,2,'\'),dbo.F_split(col,3,'\')from tadrop table tadrop function F_split/*                                             ------------------------------------------------ ----------------客厅                                      现代古典客厅                                      古典(所影响的行数为 2 行)*/
[解决办法]
SQL code
create table tb(s varchar(100))insert into tb select '\客厅\古典\pgkt-gd0375.jpg'insert into tb select '\客厅\现代古典\pgkt-xg0194.jpg'select parsename(replace(replace(s,'.',''),'\','.'),3)+','+parsename(replace(replace(s,'.',''),'\','.'),2)from tb
[解决办法]
SQL code
declare @t table(str varchar(40))insert into @t values('\客厅\古典\pgkt-gd0375.jpg')insert into @t values('\客厅\现代古典\pgkt-xg0194.jpg')select    parsename(str,4)+','+parsename(str,3) as strfrom    (select replace(stuff(str,1,1,''),'\','.') as str from @T) a/*str-------------------客厅,古典客厅,现代古典*/ 

读书人网 >SQL Server

热点推荐