-1

ここに画像の説明を入力こんにちは、

列 ProecssInstanceName から SQL クエリを使用して一意の番号を取得したいと考えています。スナップショットを以下に添付します。

現在、このクエリを使用して以下の結果を取得しています。クエリは

select c.StreamName AS Category,ProcessInstanceAppianID as jobId,a.ProcessInstanceName,a.ProcessInstanceTargetDate AS TargetDate,a.ProcessInstanceDescription as TaskDescription,b.Name as department
from InternalUseOnly..ProcessInstance a 
join InternalUseOnly..Departments b on b.KeyDepartment=a.KeyDepartmentEntered AND b.updoperation <2
join InternalUseOnly..ProcessStream c on c.KeyProcessStream=a.KeyProcessStream and c.updoperation <2
where ProcessInstanceCompleted is null
and a.KeyProcessStream in 
(330) and a.updoperation <2

前もって感謝します。

4

2 に答える 2

0

I suggest to use string functions. REPLACE "Webwatcher re-filter URL for " with blank and use LEFT together with PATINDEX to get the ID and cast is as number.

于 2013-07-16T08:40:36.097 に答える
0

これが欲しいですか?

select c.StreamName AS Category,ProcessInstanceAppianID as jobId,a.ProcessInstanceName,a.ProcessInstanceTargetDate AS TargetDate,a.ProcessInstanceDescription as TaskDescription,b.Name as department,
SUBSTRING(ProcessInstanceName,NULLIF(PATINDEX('%[0-9][0-9][0-9][0-9][0-9][0-9][0-9]%',ProcessInstanceName),0),7) as code
from InternalUseOnly..ProcessInstance a 
join InternalUseOnly..Departments b on b.KeyDepartment=a.KeyDepartmentEntered AND b.updoperation <2
join InternalUseOnly..ProcessStream c on c.KeyProcessStream=a.KeyProcessStream and c.updoperation <2
where ProcessInstanceCompleted is null
and a.KeyProcessStream in 
(330) and a.updoperation <2

編集:私はこれを作りました:

SUBSTRING(ProcessInstanceName, PatIndex('%[0-9]%', ProcessInstanceName), (LEN(ProcessInstanceName) - (PatIndex('%[0-9]%', ProcessInstanceName) - 1) - (PatIndex('%[0-9]%', REVERSE(ProcessInstanceName)) - 1)) + 1)

しかし、それは狂気だと思います。C#または使用するもので数値を解析することをお勧めします。

于 2013-07-16T06:19:40.137 に答える