我有一个名为Transactions的表,其中有一列Customer_Transactions_ID
现在,此列中的值在以下
中有所不同AB_EL_205_72330_H
AB_EL_820_23066_E_N
AB_EL_820_23066
我想修剪以" AB_EL"开头的所有值。从
制作它们AB_EL_820_23066_E_N (or whatever variation of the above) to
AB_EL_820_23066
所以基本上没有 E 或 H 在id&#39>之后
这可能吗?
答案 0 :(得分:1)
这将截断您的值,直到数字的最后一次出现。
SELECT
Original = T.Customer_Transactions_ID,
Truncated = SUBSTRING(
T.Customer_Transactions_ID,
1,
LEN(T.Customer_Transactions_ID) - PATINDEX('%[0-9]%', REVERSE(T.Customer_Transactions_ID)) + 1)
FROM
Transactions AS T
答案 1 :(得分:1)
如果我正确理解你的要求。如果文本以ab_el开头,则从文本中修剪_e,_l。
DECLARE @txt VARCHAR(100)= 'aqb_el_205_72330_h';
SELECT ISNULL(' ab_el' + CASE 当@txt喜欢' ab_el%' 然后替换(替换(REPLACE(@txt,' ab_el',''),' _e',''),&# 39; _h','') END,@ TXT);