Как обрезать все строчные буквы, которые идут перед заглавными буквами в строке, используя SQL Server - PullRequest
0 голосов
/ 02 июля 2019

Как я могу написать запрос SQL Server, чтобы обрезать все строчные буквы перед первым заглавным символом в строке?например, строковое значение «eaplgCostPrice», удалить «eaplg» и передать «CostPrice» в новый столбец

1 Ответ

1 голос
/ 02 июля 2019

Если PATINDEX используется в сочетании с определенными параметрами сортировки, то он может функционировать в зависимости от регистра.

Пример фрагмента:

--
-- using a table variable for demonstration purposes
--
declare @Table table (id int identity(1,1), col varchar(30));
insert into @Table (col) values ('eaplgCostPrice'),('SellPrice'),('amount');

--
-- trim leading lowercases when needed
--
select col, 
(case
 when patindex('[a-z]%[a-z][A-Z]%', col COLLATE Latin1_General_Bin) > 0
 then substring(col, patindex('%[A-Z]%', col COLLATE Latin1_General_Bin), len(col))
 else col
 end) as trimmedCol
from @Table

Результат:

col             trimmedCol
------------------  ----------------
eaplgCostPrice  CostPrice
SellPrice       SellPrice
amount          amount
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...