SQL, удалить появления запятой в конце списка, разделенного запятыми - PullRequest
1 голос
/ 08 апреля 2011

Как мы можем удалить последнюю запятую из списка через запятую в SQL-запросе?

Я сделал пример, где я получаю строку с запятой в качестве вывода.Но я обнаружил, что запятая приходит после окончания строки.Я пытался обрезать его, но не смог этого сделать. Может ли кто-нибудь помочь мне снять его?

моя результирующая строка выглядит так

например: - какой-то текст, какой-тобольше текста, еще больше, еще больше,

Ответы [ 2 ]

2 голосов
/ 08 апреля 2011
DECLARE @my_string nvarchar(128)
SET @my_string = N'Some Text, Some More Text, Even More, Yet More,'

select SUBSTRING(@my_string, 1, LEN(@my_string) - 1)

Если вам нужна дополнительная помощь, вам следует предоставить дополнительную информацию.

1 голос
/ 08 апреля 2011
Update MyTable
Set MyField = Case
                When Right(MyField,1) = ',' Then Substring( MyField, 1, Len(MyField) - 1 )
                Else MyField
                End

Кстати, другая альтернатива:

Update MyTable
Set MyField =  Substring( MyField, 1, Len(MyField) - 1 )
Where Value Like '%,'

Тестовый скрипт:

Declare @TestValues Table ( Value nvarchar(100) not null )

Insert @TestValues(Value) Values( 'XYZZY' )
Insert @TestValues(Value) Values( 'PLUGH' )
Insert @TestValues(Value) Values( 'SpiffyValueWithComma,' )

Select Case
        When Right(Value,1) = ',' Then Substring( Value, 1, Len(Value) - 1 )
        Else Value
        End
From @TestValues

Результаты:

XYZZY
PLUGH
SpiffyValueWithComma

Обновление

Одна из возможностей заключается в том, что трейлинг-значение не запятая, а запятая и пробел.Если это так, то вам нужно изменить ваш запрос следующим образом:

Update MyTable
Set MyField = Substring( MyField, 1, Len(MyField) - 1 )
Where Value Like '%,'
    Or Value Like '%, '
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...