подстрока или rtrim - PullRequest
       2

подстрока или rtrim

1 голос
/ 02 мая 2011

У меня есть поле с именем LastWebpage, в поле которого хранится веб-страница .asp pagename Мне нужно написать скрипт, в котором мне просто нужно взять имя jl_AssessmentDirect.asp вместо 4000_1_jl_AssessmentDirect.asp.Как мне избавиться от 4000_1_.Пожалуйста, помогите.

Спасибо.

Ответы [ 3 ]

1 голос
/ 02 мая 2011

"Это зависит"

  • Если всегда "4000_1_", используйте REPLACE в соответствии с ответом SQLMenace.

  • Если фиксированная длина любой строки, используйте SUBSTRING. Нет необходимости сначала отрабатывать ДЛИНУ

SUBSTRING(MyValue, 8, 8000)

  • Если правая сторона имеет фиксированную длину, а нежелательная часть имеет переменную длину, используйте RIGHT

  • Если обе стороны переменные, вам понадобится что-то вроде

SUBSTRING(MyValue, PATINDEX('%[_]1[_]%', MyValue) + 3, 8000)

Edit:

Если вы всегда хотите "JL" ...

SUBSTRING(MyValue, PATINDEX('%jl%', MyValue), 8000)
1 голос
/ 02 мая 2011

Вот несколько способов сделать это, я предполагаю, что данные не всегда одинаковы, это просто, чтобы показать вам, как работают функции

Правильно или заменить мой предпочтительный метод

DECLARE @v VARCHAR(100)
SELECT @v = '4000_1_jl_AssessmentDirect.asp'

SELECT REPLACE(@v,'4000_1_','')

или

DECLARE @v VARCHAR(100)
SELECT @v = '4000_1_jl_AssessmentDirect.asp'

DECLARE @r VARCHAR(100)
SELECT @r ='4000_1_'

--if you have spaces RTRIM and LTRIM everything
SELECT RIGHT(@v,LEN(@v) -LEN(@r))

Если материал меняется, вы можете вывести его в переменные

DECLARE @v VARCHAR(100)
SELECT @v = '4000_1_jl_AssessmentDirect.asp'

DECLARE @r VARCHAR(100)
SELECT @r ='4000_1_'

SELECT REPLACE(@v,@r,'')

В идеале вы хотите обновить такие столбцы, чтобы иметь только URL и ничего больше

0 голосов
/ 03 мая 2011

Помимо всех предложений здесь уже можно использовать материал .

declare @s varchar(100)
set @s = '4000_1_jl_AssessmentDirect.asp'

select stuff(@s, 1, 7, '') 

Удалить символы до jl

declare @s varchar(100)
set @s = '4000_1_jl_AssessmentDirect.asp'

select stuff(@s, 1, charindex('jl', @s)-1, '')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...