SQL字串轉換為陣列
思路:
按指定符號分割字串,返回分割後的元素個數,方法很簡單,就是看字串中存在多少個分隔符號,然後再加一,就是要求的結果。
——返回字串陣列長度函式
create function Get_StrArrayLength
(
@str varchar(5000), --要分割的字串
@split varchar(10) --分隔符號
)
returns int
as
begin
declare @location int
declare @start int
declare @length int
set @str=ltrim(rtrim(@str))
set @location =charindex(@split,@str)
set @length=1
while @location<>0
begin
set @start=@location+1
set @location=charindex(@split,@str,@start)
set @length=@length+1
end
return @length
end
——按指定符號分割字串,返回分割後指定索引的第幾個元素
create function Get_StrArrayStrOfIndex
(
@str varchar(5000), --要分割的字串
@split varchar(10), --分隔符號
@index int --取第幾個元素
)
returns varchar(5000)
as
begin
declare @location int
declare @start int
declare @next int
declare @seed int
set @str=ltrim(rtrim(@str))
set @start=1
set @next=1
set @seed=len(@split)
set @location=charindex(@split,@str)
while @location<>0 and @index>@next
begin
set @start=@location+@seed
set @location=charindex(@split,@str,@start)
set @next=@next+1
end
if @location =0 select @location =len(@str)+1
return substring(@str,@start,@location-@start)
end
——呼叫示例
--==================================
declare @str varchar(5000)
set @str='1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48'
print dbo.Get_StrArrayLength(@str,',')
declare @next int
declare @s varchar(100)
set @next=1
while @next<=dbo.Get_StrArrayLength(@str,',')
begin
print dbo.Get_StrArrayStrOfIndex(@str,',',@next) ----輸出陣列中的值
set @next[email protected]next+1
end
--==================================
——檢查一個元素是否在陣列中
Create function CheckStrInArr(@s as varchar(50),@sArr as varchar(5000)) returns int
as
begin
declare @str varchar(5000)
set @[email protected]
declare @next int
declare @ret int
set @ret=0
set @next=1
while @next<=dbo.Get_StrArrayLength(@str,',')
begin
if dbo.Get_StrArrayStrOfIndex(@str,',',@next)[email protected]
begin
set @ret=1;
end
set @next[email protected]next+1
end
return @ret
end
-- =========呼叫示例========
declare @a int
set @a=dbo.CheckStrInArr('8','2,3,5,8')
select @a
-- =========呼叫示例========
——檢查一個元素是否與陣列中的相匹配
--select dbo.CheckStrLikeInArr(2,'d','sde,df,aad,d,fgsa,fgd')
Create function CheckStrLikeInArr
(
@liketype int=0, --like型別(0為為@keyword%,2為) 一般只用0
@keyword as varchar(50), --要檢查的關鍵字
@sArr as varchar(5000) --陣列
)
returns nvarchar(max)
as
begin
declare @str varchar(5000)
set @str=@sArr
declare @start int
declare @result nvarchar(max)
set @result=''
set @start=1
declare @temp nvarchar(20);
while @start<=dbo.Get_StrArrayLength(@str,',')
begin
if @liketype=0
begin
set @temp=dbo.Get_StrArrayStrOfIndex(@str,',',@start);
if @temp like '%'+ @keyword+'%'
begin
set @result=@result+ @temp +',';
end
set @start=@start+1
end
else if @liketype=1
begin
if dbo.Get_StrArrayStrOfIndex(@str,',',@start) like ''+ @keyword +'%'
begin
set @result=dbo.Get_StrArrayStrOfIndex(@str, ',' , @start)+',';
end
set @start=@start+1
end
else if @liketype=2
begin
if dbo.Get_StrArrayStrOfIndex( @str, ',' , @start) like '%'+ @keyword+''
begin
set @result=dbo.Get_StrArrayStrOfIndex(@str, ',' , @start)+',';
end
set @start=@start+1
end
end
return @result
-- return cast(dbo.Get_StrArrayLength(@result,',')as nvarchar(2000))
end
相關推薦
SQL字串轉換為陣列
思路: 按指定符號分割字串,返回分割後的元素個數,方法很簡單,就是看字串中存在多少個分隔符號,然後再加一,就是要求的結果。 ——返回字串陣列長度函式 create function Get_S
php使用json_encode()無法將json字串轉換為陣列.轉換的結果的為null
要是使用json_decode() 字串的格式要如下: [ { "a": "hello", "b" : "world" } ]; 如果使用json_decode得到是null ,那麼很可能是 鍵名 沒有加引號 導致 ,要想上面的例子 鍵名a 有加引號這樣才能成功 的轉
ORACLE 中字串轉換為陣列的函式方法
CREATE OR REPLACE TYPE splitArray AS TABLE OF VARCHAR2(2048); --------字串拆分函式 CREATE OR REPLACE FUNCTION fu_split_Array ( str IN VARCHAR2,--輸入的字串
字串轉換為陣列,
package com.yanshu.utils; import java.net.URLDecoder; /** * 對tab選項欄位進行分割,處理 * @author Administrator * */ public class TabUtils {/***
把字串轉換為陣列 split()
1、split("")與split(" ")的區別: window.onload=function(){ var arr="abc"; console
PHP用一句程式碼把字串轉換為陣列的方式
如果你是想把url裡的引數解析到陣列可以直接用 parse_str 不用這麼複雜 用內建函式即可 建議好好看看文件 1 2 3 4 5 6 7 8 9 10 parse_str('id=123&title=標題&typ
將字串"a,b,c"以逗號分隔轉換為陣列並列印
主要利用了String的split方法。 package com.dylan.test; /** * @author xusucheng * @create 2017-12-22 **/ public class Test { public static void
JSON陣列形式字串轉換為List<Map<String,String>>的8種方法
package com.zkn.newlearn.json; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject;
Sql Server 中將由逗號“,”分割的一個字串轉換為一個表集,並應用到 in 條件中
Sql Server 中將由逗號“,”分割的一個字串,轉換為一個表,並應用與 in 條件 select * from tablenmae where id in(1,2,3) 這樣的語句和常用,但是如果in 後面的 1,2,3是變數怎麼辦呢,一般會用字串連
shell如何將文字檔案字串換行後轉換為陣列
1 #!/bin/sh 2 #首先判斷有沒有啟動失敗的檔案,有則處理 3 if [ -f "./task_start_failed.log" ]&&[ ` ls -l task_start_failed.log| awk '{print $5}' `
js將字串轉換為一維二維陣列
在Js程式設計中,有時候需要將一個字串轉換為一維陣列或者是二維陣列,現在分享給大家我自己把字串轉換為陣列的方法。 直接上原始碼: <script type="text/javascript"> //這是需要轉換的字串 var scoreStr =
圖片(路徑)轉換為陣列字串 及字串轉換為圖片並存儲至指定目錄
package diiwon; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException;
shell將字串分割為陣列
找到有兩種方法: 使用內建的分割符IFS str="192.168.31.65" OLD_IFS="$IFS" #儲存舊的分隔符 IFS="." array=($str) IFS="$OLD_IFS" # 將IFS恢復成原來的 for i in "${!array[
PHP 將引數轉換為陣列格式
php將引數轉換為陣列格式(&連線的引數) public static function paramToJson($param) { $array = array(); $paramArrs = explode('&', $
原生js將字串轉化為陣列
題目: 如圖:將以下字串轉換為二維陣列形式 var str = `1df fg -,d aew e';e df" s d dd `; 解決辦法:陣列空行分割在宮格分割 程式碼: var stringToArray = function
MyBatis操作PostgreSQL中時間字串轉換為timestamp型別
在插入String型別的屬性到表字段型別為timestamp的格式轉換:TO_TIMESTAMP(#{引數}, 'yyyy-mm-dd hh24:mi:ss')或者TO_TIMESTAMP(#{引數}, 'yyyy-mm-dd') 例:if (record.實體類屬性
把字串轉換為數字
C當中有一些函式專門用於把字串形式轉換成數值形式。 printf()函式和sprintf()函式 -->通過轉換說明吧數字從數字形式轉換為字串形式; scanf()函式把輸入字串轉換為數值形式; 應用場景: 編寫程式需要使用數值命令形參,但是命令形參被讀取為字串。要使用數值必須先把字串轉換為數字
C# 將字串轉換為MD5值
StrConversionMD5: 方法能夠將傳入的字串轉換為MD5值 namespace MD5加密 { class Program { static void Main(
Java將字串轉換為時間,支援多種格式
適用格式 //2017/11/25 11:11:11//2017-11-25 11:11:11//2017.11.25 11:11:11//2017/11/25//2017-11-25//2017.11.25 public String judg
使用ParseExact方法將字串轉換為日期格式
實現效果: 知識運用: DateTime結構的ParseExact方法 public static DateTime ParseExact(string s,string format,IFormatProvider provider); 實現程式碼: