Подтвердить что ты не робот

SQL SELECT все после определенного символа

Мне нужно извлечь все после последнего '=' (http://www.domain.com?query=blablabla → blablabla), но этот запрос возвращает целые строки. Где я ошибся здесь:

SELECT RIGHT(supplier_reference, CHAR_LENGTH(supplier_reference) - SUBSTRING('=', supplier_reference)) 
FROM ps_product
4b9b3361

Ответ 2

Попробуйте это (он должен работать, если в строке есть несколько символов "=" ):

SELECT RIGHT(supplier_reference, (CHARINDEX('=',REVERSE(supplier_reference),0))-1) FROM ps_product

Ответ 3

Попробуйте это в MySQL.

right(field,((CHAR_LENGTH(field))-(InStr(field,','))))

Ответ 4

В MySQL это работает, если в строке

есть несколько символов "=",
SUBSTRING(supplier_reference FROM (LOCATE('=',supplier_reference)+1))

Возвращает подстроку после (+1), найдя первую =

Ответ 5

Для студии SQL Management я использовал вариант ответа BWS. Это получает данные справа от '=' или NULL, если символ не существует:

   CASE WHEN (RIGHT(supplier_reference, CASE WHEN (CHARINDEX('=',supplier_reference,0)) = 0 THEN
    0 ELSE CHARINDEX('=', supplier_reference) -1 END)) <> '' THEN (RIGHT(supplier_reference, CASE WHEN (CHARINDEX('=',supplier_reference,0)) = 0 THEN
    0 ELSE CHARINDEX('=', supplier_reference) -1 END)) ELSE NULL END