Запрос дает O/P, какС в пункте при передаче коллекции в качестве параметра в Sql Server
ItemSizeNM
(ColName)
'U', 'V', 'X', 'Y '
Но когда я использовал это как вход для IN Query в коде, который я сделал. Он не дает одинаковый набор результатов. Почему это происходит ...? Таблица MstItemSize имеет правильные данные.
declare @tblRingSize table (ringSize varchar(100)) declare @ringSize varchar(100) select @ringSize= cast((otherringSize) as varchar) from ##tempBand where styleNo='BD00002';
INSERT INTO @tblRingSize выбора пункта из dbo.SplitStrings_CTE (@ringSize, '');
выберите ItemSizeNm из MstItemSize, где SizeTypeNm = 'Кольцо' и
ItemSizeNm
в - (U '', 'V', 'X', 'Y')(выберите Заменить ( (выберите STUFF ((выберите '' ',' '' + ringSize из @tblRingSize для XML PATH ('')), 1,2, '') + '' '') , '', ''))
выберите Заменить ( (выберите ВЕЩЕСТВО ((выберите '' ' ''' + ringSize из @tblRingSize для XML PATH ('')), 1,2, '') + '' '') , '', '')
Попробуйте не использовать 'varchar' а' VARCHAR (100) '. Также почему вы используете глобальную таблицу ## temp? Каково определение SplitStrings_CTE? Что такое тип данных otherringSize в ## tempBand? –
Я использовал глобальную температуру, потому что я тоже хочу использовать эту таблицу в других запросах. SplitStrings_CTE Функция spilts comma разделяет charaters, и тип данных otherringSize - varchar (100) –
Другие запросы * где *? Также я знаю, что делает функция split, но, возможно, она не делает это правильно (например, объявление varchar может безболезненно обрезать вашу строку). Где вы получили функцию? –