簡體   English   中英

子串的子串

[英]Substring of a Substring

我在SQL Server 2008中有一個文本字段(在“Employs”表中名為“BiographyText”的字段),它存儲KPI目標數字:

rebfirst60,
reifirst1.3,
retfirst50

第一個目標是60,對於RebFirst,第二個目標是ReiFirst為1.3,第三個為RetFirst為50。

我希望能夠返回3個不同的數值,因為這些數值將被視為某個員工每個kpi的目標。

我有一個完整的思維模塊試圖找出最好的方法,任何建議/幫助?

總的來說,我試圖找到kpiname(“rebfirst”),然后檢索接下來的2個字符/數字

我嘗試了以下內容,但它在第一個子字符串的函數2上出錯,因為它是非數字的:

select SUBSTRING(biographytext,SUBSTRING('rebfirst',1,2),2) from employs

謝謝

嘗試這個

SELECT 
    CASE WHEN PatIndex('%[a-z]%',REVERSE(BiographyText)) > 0
      THEN RIGHT(BiographyText,PatIndex('%[a-z]%',REVERSE(BiographyText))-1)
      ELSE '' END AS target 
FROM employs

使用函數檢查另一個解決方案

從郵報第一個目標是60,對於RebFirst,第二個目標是ReiFirst為1.3,第三個為RetFirst為50。

從評論我不需要從這個值的實際kpiname

以下Query將為您提供答案。

select case column_name when 'rebfirst60' then 60
       when 'reifirst1.3' then 1.3
       when 'retfirst50' then 50
from employs

我現在使用以下內容:

select 
SUBSTRING(SUBSTRING(biographytext,1,10),9,2) as RebookingFirst,
SUBSTRING(SUBSTRING(biographytext,11,20),12,3) as ReInventFirst,
SUBSTRING(SUBSTRING(biographytext,21,30),16,3) as ReCreateFirst,
SUBSTRING(SUBSTRING(biographytext,31,40),20,2) as RetentionFirst,
SUBSTRING(SUBSTRING(biographytext,41,50),23,2) as ReferralsFirst
from employs

這給了我每個kpi的結果

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM