Member 12640353 Ответов: 3

Как заменить строку в sqlserver одинарными кавычками


у меня есть ценности, которые есть у сотрудника

Объявите emp varchar(10)
set emp ='суровый,Суреш, Мохан'

выберите * form Emp where name in (emp)

Что я уже пробовал:

Объявите emp varchar(10)
set emp ='суровый,Суреш, Мохан'

выберите * form Emp where name in (replace(emp, ',',","))

Naga Sindhura

Как хранятся данные в поле name?
для условия "Харш,Суреш, Мохан" - три разных записи - одна для Харша, другая для Суреша и еще одна для Мохана.
/Или харшсурешмохан /или что-то еще
Пожалуйста, оставьте свой комментарий?

3 Ответов

Рейтинг:
2

Member 11621026

declare @emp VARCHAR(100)
set @emp= 'harsh,suresh,mohan'
select @emp
SELECT REPLACE(@emp, ',',' ')


CHill60

При этом запятые заменяются пробелом. ОП хотел заменить их одинарными кавычками - как ясно говорится в названии

Рейтинг:
1

OriginalGriff

Вы не можете сделать это напрямую. Видеть здесь: Использование разделенных запятыми строк параметров значений в предложениях SQL IN[^]


Рейтинг:
1

aparnalakshmi

объявить @emp VARCHAR(10)
set @emp= 'суровый,Суреш,Мохан'
выберите @emp
Выберите заменить(@emp, ',',",")


CHill60

Это приводит к синтаксической ошибке. Пожалуйста, проверьте свой код перед публикацией или заявите, что он непроверен

Naga Sindhura

может быть ее целью является, выберите заменить(@Эми, ',',") не Выберите заменить(@Эми, ',',",")

CHill60

И тогда я бы прокомментировал, что он просто удаляет запятые и не заменяет их одинарными кавычками, как четко указано в названии. Я бы также тогда прокомментировал, что а varchar(10) это недостаточно долго для строки 'harsh,suresh,mohan' (18 символов), поэтому мой комментарий "пожалуйста, проверьте свой код перед публикацией или состояние, которое не проверено" все еще остается в силе

Naga Sindhura

Согласованный.. Но небольшая поправка ...varchar(10) упоминается в самой постановке задачи.. Я знаю, что это неправильно, как вы упомянули ранее..