當前位置:首頁 » 編程語言 » sqlserver分割字元串

sqlserver分割字元串

發布時間: 2022-07-07 10:57:11

sqlserver 怎麼分割字元串

如樓上給的 單獨分割一部分 也可用下面的函數 分割出一個集合

--1.0拆分字元串參數@strSource要操作的字元串@strSeparator分隔符
CREATEFUNCTION[dbo].fn_splitStr(@strSourceNVARCHAR(4000),@strSeparatorNVARCHAR(10))
RETURNS@tbResultTABLE(idINTIDENTITY(1,1),rsNVARCHAR(1000))
AS
BEGIN
DECLARE@dwIndexINT,@strResultNVARCHAR(1000),@dwSeparatorLenINT=LEN(@strSeparator);
SET@dwIndex=CHARINDEX(@strSeparator,@strSource);--取得第一個分隔符的位置
WHILE@dwIndex>0
BEGIN
SET@strResult=LEFT(@strSource,@dwIndex-1);
INSERT@tbResultVALUES(@strResult);

--將要操作的字元串去除已切分部分
SET@strSource=SUBSTRING(@strSource,@dwIndex+LEN(@dwIndex),LEN(@strSource));
SET@dwIndex=CHARINDEX(@strSeparator,@strSource);--循環量增加
END
--處理最後一節
IFLEN(@strSource)>0INSERT@tbResultVALUES(@strSource)
RETURN;
END
GO

㈡ sqlserver 字元串分割

建議後台代碼實現。

㈢ sqlserver 如何截取格式固定的分隔符之間的字元

我說一下用java實現,有多種方案,可以先把整個字元串用 | 究分割,再用 = 分割,取出想要的字元串,組合起來。第二種方案用正則提取出想要的字元串,再組合。例如下面是用正則全實現的:

importjava.util.regex.Matcher;
importjava.util.regex.Pattern;

publicclassDemo3{

publicstaticvoidmain(String[]args){

Strings="00080220=0000231737|00081037=0000231737|00086153=0000231811|00086160=0000231901|";

Patternpattern=Pattern.compile("=(\d+)\|");

Matchermatcher=pattern.matcher(s);

Stringresult="";

while(matcher.find()){
result+=matcher.group(1)+"|";
}

System.out.println(result);
}
}

運行結果是:

0000231737|0000231737|0000231811|0000231901|

㈣ sqlserver拆分字元串用的是什麼函數

DECLARE @splitlen int, @re varchar(100)
SET @splitlen=LEN(@split+'a') - 2
WHILE CHARINDEX(@split,@s) > 0 AND @pos > 0
SELECT
@re = LEFT(@s,CHARINDEX(@split,@s)-1),
@s=STUFF(@s,1,CHARINDEX(@split, @s)+@splitlen,''),
@pos = @pos - 1
RETURN(CASE
WHEN @pos = 0 THEN @re
WHEN @pos = 1 THEN @s
ELSE NULL END)
END

㈤ sqlserver怎麼把一個表中按分號隔開的字元串分成多行放在一個臨時表中呢

  1. 分割「版區負責人Id」,使其結果為

    版區Id版區負責人Id

    6123

    6456

    6789

    (這里,我想來想去,只有使用零時表+游標來實現,個人沒有想到更好的方法)


    CREATEFUNCTION[dbo].[fun_Split]
    (
    @strVARCHAR(MAX),
    @splitVARCHAR(10)
    )
    RETURNSTABLE
    AS
    RETURN
    (SELECTB.idFROM(SELECT[value]=CONVERT(XML,'<v>'+REPLACE(@str,@split,'</v><v>')
    +'</v>')
    )A
    OUTERAPPLY(SELECTid=N.v.value('.','varchar(100)')
    FROMA.[value].nodes('/v')N(v)
    )B
    )
    GO
    --2005以及以上的版本支持這種分割寫法。
  2. 用xml path,把數據搞成你所要的結果

㈥ sql實現字元串分割截取,以分號做標致位。

你的資料庫是什麼資料庫?
sqlserver?oracle?

下面這個是db2的,簡單改一下sqlserver應該就能用:
http://hi..com/micro0369/item/cac396e8c99fc5e9fb42ba5e

找到一個sqlserver的:
http://blog.csdn.net/xiaoyuan402/article/details/7049473

㈦ sqlserver 按分隔符截取字元串

可以參考下面的代碼:

selectsubstring('ADFASDFD(DASFADSFAS)',1,charindex('(','ADFASDFD(DASFADSFAS)')-1)

主要用到兩個函數,一個charindex,這個是判斷指定字元位置的函數。

另一個是substring,這個是截取字元串的函數。

(7)sqlserver分割字元串擴展閱讀:

sqlserver參考函數

upper(char_expr) 轉為大寫

lower(char_expr) 轉為小寫

space(int_expr) 生成int_expr個空格

reverse(char_expr) 反轉字元串

stuff(char_expr1,start,length,char_expr2) 將字元串char_expr1中的從

㈧ SQLserver用逗號隔開的數據如何改為分行

假設2016-01-01這話日期在單元格A1輸入公式B1=VALUE(TEXT(YEAR(A1)&MONTH(A1)&DAY(A1),0))問題搞定純手打,望採納

㈨ 關於SQLserver 存儲過程 如何切割一個字元串 轉化為數組

Create Function [dbo].[Split](@Sql varchar(8000),@Splits varchar(10))
returns @temp Table (a varchar(100))
As
Begin
Declare @i Int
Set @Sql = RTrim(LTrim(@Sql))
Set @i = CharIndex(@Splits,@Sql)
While @i >= 1
Begin
Insert @temp Values(Left(@Sql,@i-1))
Set @Sql = SubString(@Sql,@i+1,Len(@Sql)-@i)
Set @i = CharIndex(@Splits,@Sql)
End
If @Sql <> ''
Insert @temp Values (@Sql)
Return
End

㈩ sql 如何 拆分 字元串

megetgod的解法不錯。
只是如果數據量小就罷了,數據量大了在SQL中處理效率不高。建議用C、C++寫個小程序處理一下為好。

熱點內容
滑板鞋腳本視頻 發布:2025-02-02 09:48:54 瀏覽:432
群暉怎麼玩安卓模擬器 發布:2025-02-02 09:45:23 瀏覽:557
三星安卓12彩蛋怎麼玩 發布:2025-02-02 09:44:39 瀏覽:743
電腦顯示連接伺服器錯誤 發布:2025-02-02 09:24:10 瀏覽:537
瑞芯微開發板編譯 發布:2025-02-02 09:22:54 瀏覽:146
linux虛擬機用gcc編譯時顯示錯誤 發布:2025-02-02 09:14:01 瀏覽:239
java駝峰 發布:2025-02-02 09:13:26 瀏覽:652
魔獸腳本怎麼用 發布:2025-02-02 09:10:28 瀏覽:538
linuxadobe 發布:2025-02-02 09:09:43 瀏覽:212
sql2000資料庫連接 發布:2025-02-02 09:09:43 瀏覽:726