#sql #sql-server #substring #concatenation
Вопрос:
Итак, это часть моего запроса:
select concat('copy \librarycommonphotos',Image,'.',ImageType)
Результатом запроса будет следующее:
copy \librarycommonphotos{tuesday}_1pm{tuesday}_1_ggc9070bsgdg763013a06a54b9bf54e5.png
Я немного запутался в том, как работает логика этого запроса, он просто добавляет тип расширения изображения в конец изображения из той же папки. Есть ли способ, чтобы я мог вставить букву A или B с изображения?
Таким образом, результат будет таким из запроса:
copy \librarycommonphotos{tuesday}_1pmX{tuesday}_1_ggc9070bsgdg763013a06a54b9bf54e5.png
В любом случае, я могу использовать подстроку, чтобы добавить эту дополнительную букву впереди?
Комментарии:
1. Конкат()
2. Не могли бы вы, пожалуйста, написать ответ, и я приму его?
3. Ха-ха, моего комментария на самом деле недостаточно в качестве фактического «ответа», ответ должен быть чем-то большим, чем просто ссылка на документацию 🙂 Но я подумал, что это, вероятно, все, что тебе нужно.
4. вставьте его в переднюю
concat()
частьImage
:-select concat('copy librarycommonphotos','X',Image,'.',ImageType)
5. @Белка, ЭТО БУДЕТ ИДТИ ПЕРЕД ИЗОБРАЖЕНИЕМ, ХОТЯ
Ответ №1:
Проанализируйте Image
и разделите на путь к файлу и имя файла. Затем используйте concat()
для объединения в требуемую строку со X
вставкой между
select concat('copy librarycommonphotos', ImagePath, 'X', ImageName, '.', ImageType)
from yourtable
cross apply
(
select ImagePath = left(Image, p 1),
ImageName = right(Image, len(Image) - p - 1)
from (
select p = len(Image) - charindex('', reverse(Image))
) p
) p