sqlserver字元串拆分
❶ sqlserver用逗號隔開的數據如何改為分行
假設2016-01-01這話日期在單元格A1輸入公式B1=VALUE(TEXT(YEAR(A1)&MONTH(A1)&DAY(A1),0))問題搞定純手打,望採納
❷ sqlserver 字元截取、查找
返回字元串在表達式expression里第一次出現的位置,起始值從1開始算,沒找就納慶返回0
描述一下此函數的具體用法:
'%pattern%' 的用法類似於 like '%pattern%' 的用法,也就是模糊查找其pattern字元串是否是expression找到,找到並返回其第一次出現的位置。
查找pattern的結束所在expression的位置,也就是從後面匹配起查找。
查詢pattern首次出現的位置。
返回0,開頭找不到就返回碼液0,後面無論有多少都不管。
這就相當於精確匹配查找,也就是pattern,expression完全相等。
[] 是指遲茄物定某些特殊的字元。
[^] 除[]之外的字元串。
❸ sqlserver拆分長欄位。正則表達式
([\s\S]*?)(\d{4}-\d{2}-\d{2}\s+\d{2}:\d{2})
正則可迅首以這樣寫
拆分的話 在畝備數滾山代碼裡面做會方便一些吧
❹ 關於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
❺ sqlserver 按分隔符截取字元串
可以參考下面的代碼:
selectsubstring('ADFASDFD(DASFADSFAS)',1,charindex('(','ADFASDFD(DASFADSFAS)')-1)
主要用到兩個函數,一個charindex,這個是判斷指定字元位置的函數。
另一個是substring,這個是截取字元串的函數。
(5)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根據指定字元串拆分字元到臨時表函數
Create function [dbo].[split]
(
@SourceSql varchar(max),
@StrSeprate varchar(10)
)
returns @temp table(line varchar(max))
as
begin
declare @i int
set @SourceSql = rtrim(ltrim(@SourceSql))
set @i = charindex(@StrSeprate,@SourceSql)
while @i >= 1
begin
if len(left(@SourceSql,@i-1))>0
begin
insert @temp values(left(@SourceSql,@i-1))
end
set @SourceSql=substring(@SourceSql,@i+len(@StrSeprate),len(@SourceSql)-@i)
set @i=charindex(@StrSeprate,@SourceSql)
end
if @SourceSql > ''
insert @temp values(@SourceSql)
return
end
調用:Select * From dbo.split('1003,1004,1005',',')
結果如下:
100310041005
----------------------------------------------------------------------------------------------------------------------------------
--@column 表示欄位或者常量,@paddingChar 表示 補位字元, @len 補位數量, @returnStr
create function [dbo].[PadLeft](@column varchar(16),@paddingChar char(1),@len int)
returns varchar(16) as
begin
declare @returnStr varchar(16)
select @returnStr = isnull(replicate(@paddingChar,@len - len(isnull(@column ,0))), '') + @column
return @returnStr
end
select dbo.PadLeft(2,0,5)
❼ sql server中如何把下面的欄位拆分成4個欄位
你這是xml格式的啊,是文件?還是什麼?
用xml的組建進行分析,然後獲取欄位,插入表;這是一種方案
要不你就寫存儲過程,將數據取出來,對字元串進行分析,獲取各列的值就可了。
❽ 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拆分字元串用的是什麼函數
SQL Server中自定義函數:友好則用指定的分隔符號分襪尺割字好棚符串
http://www.cnblogs.com/SavionZhang/p/4094459.html
❿ sql實現字元串分割截取,以分號做標致位。
你的資料庫是什麼資料庫?
sqlserver?oracle?
下面這個是db2的,簡單改一下sqlserver應該就能用:
http://hi..com/micro0369/item/cac396e8c99fc5e9fb42ba5e
找到一個sqlserver的:
http://blog.csdn.net/xiaoyuan402/article/details/7049473