当前位置: 代码迷 >> Sql Server >> 如何用T-SQL语句 取出 "\客厅\古典\pgkt-gd0375.jpg" 中以这种格式显示 客厅,古典
  详细解决方案

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

热度:273   发布时间:2016-04-27 18:42:43.0
怎么用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,@[email protected])>0        SELECT @[email protected],            @s=stuff(@s,1,charindex(@split,@[email protected])[email protected],'')    RETURN(nullif(left(@s,charindex(@split,@[email protected])-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,@[email protected])>0        SELECT @[email protected],            @s=stuff(@s,1,charindex(@split,@[email protected])[email protected],'')    RETURN(nullif(left(@s,charindex(@split,@[email protected])-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-------------------客厅,古典客厅,现代古典*/
  相关解决方案