久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

通過索引獲取字符串的特定部分?

get specific part of a string, by index?(通過索引獲取字符串的特定部分?)
本文介紹了通過索引獲取字符串的特定部分?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

問題描述

我有一個字符串:

@TempCol = sigma_x1,sigma_x2,...,sigma_xd,XX,YY,ZZ

@TempCol = sigma_x1,sigma_x2,...,sigma_xd,XX,YY,ZZ

那么我怎樣才能獲得該字符串的特定部分,比如一個索引.所以

So how could I get a specific part of that string, based on, lets say an index. so

  • 如果索引為 0,則獲取 sigma_x1
  • 如果索引為 1,則獲取 sigma_x2
  • 如果索引為 2,則獲取 sigma_x3
  • 如果索引是 d-1,得到 sigma_xd
  • 如果索引是 d,得到 XX,
  • 如果索引是d+1,得到YY等等.

以前Andriy M 解決了一個類似的問題,他的代碼根據一個數字獲取一個子字符串,但通過以下方式返回一個子字符串:

Previously Andriy M solved a similar issue, his code gets a substring based on a nomber but returns a substring the following way:

  • 如果@d 是 1,得到 sigma_x1
  • 如果@d 是 2,得到 sigma_x1,sigma_x2
  • 如果@d 是 3,得到 sigma_x1,sigma_x2,sigma_x3
  • 如果@d 是 4,得到 sigma_x1,sigma_x2,sigma_x3,sigma_x4
  • 如果@d 是 d,得到 sigma_x1,sigma_x2,sigma_x3,sigma_x4,...,sigma_xd(所有字符串)

如何更新此程序以獲取特定元素?

How to update this procedure to get specific element?

DECLARE @TempCol varchar(max), @d int, @p int, @Result varchar(max);
SET @TempCol = 'item1,item2,itemA,itemB,item#,item$';
SET @d = 3;

SET @p = 1;
WHILE @d > 0 AND @p > 0 BEGIN
  SET @p = CHARINDEX(',', @TempCol, @p);
  IF @p > 0 SET @p = @p + 1;
  SET @d = @d - 1;
END;

IF @p = 0
  SET @Result = @TempCol
ELSE
  SET @Result = SUBSTRING(@TempCol, 1, @p - 2);

SELECT @Result;

推薦答案

試試這個.希望這能滿足您的需求.

just try this. hope this will meet your needs.

創建一個函數GetIndex,它接受字符串和分隔符來分割字符串

create a function GetIndex, which accepts string and delimiter to split the string

CREATE FUNCTION dbo.GetIndex(@String varchar(8000), @Delimiter char(1))       
 returns @temptable TABLE (itemindex int identity(1,1), items varchar(8000))       
 as       
 begin       
     declare @idx int       
     declare @slice varchar(8000)       

     select @idx = 1       
         if len(@String)<1 or @String is null  return       

     while @idx!= 0       
     begin       
         set @idx = charindex(@Delimiter,@String)       
         if @idx!=0       
             set @slice = left(@String,@idx - 1)       
         else       
             set @slice = @String       

         if(len(@slice)>0)  
             insert into @temptable(Items) values(@slice)       

         set @String = right(@String,len(@String) - @idx)       
         if len(@String) = 0 break       
     end   
 return       
 end 

你可以查詢,
假設你需要第四個索引

and you can query like,
suppose you need 4th index then

select * from dbo.GetIndex(@TempCol,',') where itemindex = 4

然后獲取第 4 個索引的項目

to get an item of 4th index then

select items from dbo.GetIndex(@TempCol,',') where itemindex = 4

獲取項目到變量

select @Aux = items from dbo.GetIndex(@TempCol,',') where itemindex = 4

這篇關于通過索引獲取字符串的特定部分?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

相關文檔推薦

Modify Existing decimal places info(修改現有小數位信息)
The correlation name #39;CONVERT#39; is specified multiple times(多次指定相關名稱“CONVERT)
T-SQL left join not returning null columns(T-SQL 左連接不返回空列)
remove duplicates from comma or pipeline operator string(從逗號或管道運算符字符串中刪除重復項)
Change an iterative query to a relational set-based query(將迭代查詢更改為基于關系集的查詢)
concatenate a zero onto sql server select value shows 4 digits still and not 5(將零連接到 sql server 選擇值仍然顯示 4 位而不是 5)
主站蜘蛛池模板: 精品久久香蕉国产线看观看亚洲 | 性在线| 日韩精品一区二区三区高清免费 | 久久久久久电影 | 亚洲二区在线 | 一区二区三区四区视频 | 亚洲欧美精品在线观看 | 免费观看成人性生生活片 | 一区二区三区在线 | 欧 | 国产成人精品久久二区二区91 | 亚洲精品永久免费 | 国产午夜精品一区二区三区嫩草 | 久久99精品国产99久久6男男 | 久久国产欧美一区二区三区精品 | 欧美三区视频 | 亚洲成av人片在线观看 | 狠狠爱一区二区三区 | caoporn视频 | 欧美性大战xxxxx久久久 | 91视频观看| 欧美国产精品 | 亚洲精品久 | 国产综合一区二区 | 日日骚视频 | 国产在线一区二区三区 | 91精品久久久久久久久久小网站 | 日韩免费网 | 精品1区2区3区4区 | 国产激情一区二区三区 | 国产精品毛片久久久久久久 | 狠狠视频| 一区二区三区日 | 亚洲色图在线观看 | 久久久久无码国产精品一区 | 中文字幕97 | 日本黄色大片免费 | 欧美久久一级特黄毛片 | 香蕉大人久久国产成人av | 国产精品免费在线 | www国产亚洲精品久久网站 | 亚洲精品亚洲人成人网 |