Сложная часть здесь ... данные не всегда включают? отметка. Вы можете найти положение? используя charindex, но чтобы выбрать данные слева от него, вам нужно использовать CharIndex - 1. Если? не найден, CharIndex возвращает 0, а Left (data, 0-1) приводит к ошибке.
Простое решение - убедиться, что CharIndex всегда найдет что-то для себя. Как это:
Select Left(URL, CharIndex('?', URL + '?')-1)
From @Temp
Обратите внимание, что я делаю CharIndex для URL + '?'. Если данные не содержат вопросительный знак, функция charindex вернет значение на 1 больше длины строки, что хорошо работает для левой функции.