2012-02-14 2 views
0

У меня есть пользовательская функция, которая анализирует строки. Моя строка выглядит как [email protected]>@100. Поэтому, когда я вызываю свою функцию, он возвращает три записи с 1,> и 100. Мне нужно вставить эти результаты в таблицу temp в виде столбцов.Преобразование строк в столбец в SQL

Моя временная таблица состоит из трех столбцов.

ИЛИ ВЫ МОЖЕТЕ СЧИТАТЬ, ЧТО У меня ТАБЛИЦА ТЕМПЕРАТУРЫ (таблица имеет только одну колонку) С 3 ROWS И мне нужно преобразовать результат в 3 COLUMN.

поэтому выберите * from #tmptable даст мне 3 строки, но мне нужно отобразить все 3 строки в виде столбца. Спасибо заранее.

+0

Вы просто просите для SQL вставить значение? – David

ответ

0

Если я не буду недопонимание вопрос:

INSERT INTO имя_таблицы VALUES (1, '>', 100);

Если первый и третий столбцы не являются строками, вы также ставите одинарные кавычки.

+0

Да, я получу – jvm

+0

1> 100 как 3 строки, которые мне нужно вставить в таблицу temp как столбец – jvm

+0

Интересно ... инструкция вставки выше должна вставить эти три значения как один столбец должным образом, но вы все равно будете иметь три строки в другом месте, которые нужно будет удалить. – David

0

Вы можете попробовать добавить идентичность к вашей временной таблице и выполнению PIVOT:

declare @t table(id int identity(1,1), strfrag varchar(8)) 
insert into @t values 
('1'), ('>'), ('100'); 

select [1],[2],[3] from @t 
pivot (
    max(strfrag) 
    for id in ([1],[2],[3]) 
) as pt; 

Результат:

1  2  3 
-------- -------- -------- 
1  >  100 
+0

выше запрос дать ошибку сказать Неправильный синтаксис около 'max' – jvm

+0

Вы скопировали и вставили точно? Я просто вставил это в SQL 2008 и не получил ошибок. В 2005 году единственное, что мне пришлось изменить, это вставка в часть. Но никаких сводных ошибок. –

Смежные вопросы