Проблема с запятой в SQL - PullRequest
       1

Проблема с запятой в SQL

3 голосов
/ 12 сентября 2011

У меня небольшая проблема. Я получаю эту ошибку, и я был бы признателен, если бы кто-нибудь мог мне помочь! Все, что я пытаюсь сделать, это список через запятую.

SET NOCOUNT ON;

DECLARE @TypeID Varchar(250)

SELECT
    @TypeID = COALESCE(@TypeID +',' ,'') + TypeID 
FROM
    Related

RETURN @TypeID 

Сбой преобразования при преобразовании значения varchar '8' в тип данных int.

Кто-нибудь знает, как исправить, пожалуйста? Я пробовал CONVERT(VARCHAR, @TypeID), но это, похоже, не имеет никакого значения!

Ответы [ 4 ]

4 голосов
/ 12 сентября 2011

Является ли поле TypeId в связанной таблице целым числом?Вам необходимо преобразовать поле базы данных в varchar, чтобы ваш код работал

Select @typeId = coalesce(@typeId+',','') + cast(typeId as varchar(20))
from related
2 голосов
/ 12 сентября 2011

Другие ответы верны: вам нужно CAST от int до varchar, но другая проблема в том, что вы используете RETURN @TypeID.

Оператор возврата ожидает целое число (обычно используется для обозначения успеха / неудачи , а не для данных) и не может использоваться со строками. Вам нужно использовать параметр OUTPUT или оператор SELECT.

1 голос
/ 12 сентября 2011

Приведение TypeId в качестве varchar:

DECLARE @TypeID Varchar(250)

SELECT
    @TypeID = COALESCE(@TypeID + ',' , '') + CAST(TypeID As varchar(20))
FROM
    Related

RETURN @TypeID 

Другим методом будет использование конкатенации строк:

Declare @TypeId varchar(250)
Select @TypeId = ''

Select @TypeId = @TypeId + ', ' + CAST(TypeID As varchar(20))
From Related
0 голосов
/ 12 сентября 2011

Попробуйте следующее:

ОБЪЯВИТЬ @TypeID Varchar (250)

SET @TypeID = ''

SELECT @TypeID = COALESCE (@TypeID + ',', '') + CAST (TypeID As varchar (20)) ОТ Связанные

SELECT STUFF (@TypeID, 1, 1, '')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...