Tsql 需要在sql server中使用数组或任何建议创建函数的概念
下面是数据示例Tsql 需要在sql server中使用数组或任何建议创建函数的概念,tsql,excel,vba,Tsql,Excel,Vba,下面是数据示例 ss-tt(1/21/2014 9:47:12 AM)->bb-tt-uu(02/07/14 11:09:59) 上述数据存储在表的一列中。现在我要做的是,拆分“date”,后面跟“sstt”,并将其粘贴到另一列中的同一行中 为此,我想在SQLServer中创建一个函数。在excel(VBA)中,使用数组创建函数非常容易,但在Sql server中,我不知道如何使用数组概念 下面是我在excel(VBA)中为相同计算创建的函数 Sub readExcell1()
ss-tt(1/21/2014 9:47:12 AM)->bb-tt-uu(02/07/14 11:09:59)
上述数据存储在表的一列中。现在我要做的是,拆分“date”,后面跟“sstt”,并将其粘贴到另一列中的同一行中
为此,我想在SQLServer中创建一个函数。在excel(VBA)中,使用数组创建函数非常容易,但在Sql server中,我不知道如何使用数组概念
下面是我在excel(VBA)中为相同计算创建的函数
Sub readExcell1()
Dim arr() As Variant
Dim token As Variant
Dim innertoken As Variant
Dim first As String
Dim second As String
Dim ind As Integer
arr = Range("D2:D849")
Dim R As Long
Dim C As Long
rownum = 1
colnum = 1
For R = 1 To UBound(arr, 1) ' First array dimension is rows.
'MsgBox "processing row " & R
'MsgBox arr(R, 1)
token = Split(arr(R, 1), "->")
For i = LBound(token) To UBound(token)
'MsgBox token(i)
innertoken = Split(token(i), "(")
first = innertoken(0)
first = Trim(first)
second = innertoken(1)
If first = "payroll-apac" Then
ind = 1 + R
second = Replace(Trim(second), ")", "")
Application.Range("H" & ind).Value = second
GoTo Label1
End If
Next i
Label1:
Next R
End Sub
这应该是你想要的。显然,您可以单独处理前缀和分隔符,而不是使用列
declare @table table (
[value] [nvarchar](max)
, [prefix] [sysname]
, [separator] [sysname]
, [calculated] as substring([value]
, len([prefix]) + 1
, charindex([separator]
, [value]) - len([prefix]) - 1));
--
insert into @table
([value]
, [prefix]
, [separator])
values (N'ss-tt(1/21/2014 9:47:12 AM)->bb-tt-uu(02/07/14 11:09:59)'
, N'ss-tt('
, N')');
--
select [value]
, [calculated]
from @table;
请不要使用不适用于您的问题的标签