Можно ли выбрать данные сервера SQL, используя порядковый номер столбца

Смените foodVATRate на decimal. Кажется, нет никаких причин для его удвоения.

33
задан OMG Ponies 18 February 2011 в 18:25
поделиться

7 ответов

Я не думаю, что Вы можете. Как @Michael Харен показал, можно использовать порядковые положения В пунктах ORDER BY, но я никогда не видел их используемый в другом месте в SQL Server.

я не уверен, какую проблему Вы имеете со своим одноразовым импортом данных, которому это помогло бы с - по-видимому, некоторое неудачное имя столбца? Можно ли объяснить немного больше?

0
ответ дан robsoft 19 February 2011 в 04:25
поделиться

Можно использовать этот запрос

select * from information_schema.columns

для получения порядковых положений столбцов. Как Michael Haren записал, необходимо будет создать динамический запрос с помощью этого, или в коде или в sproc, которому Вы передаете позиции столбцов.

FWIW, это - чистое зло.

кроме того, deathofrats является правильным, Вы не можете действительно сделать этого, так как Вы будете создавать регулярный запрос w/имена столбцов на основе положения.

7
ответ дан Booji Boy 19 February 2011 в 04:25
поделиться
  • 1
    Пользовательский Window' s суперпредставление является пустым. Просто набор it' s скрытый к НЕТ – tristan 20 March 2013 в 03:55

При использовании MS SQL 2005, можно использовать функцию ROW_NUMBER.

ИЗБРАННЫЙ Col1, Col2, ROW_NUMBER () ПО (ORDER BY Col1) ОТ Теста, ГДЕ ROW_NUMBER () По (Порядок Col1) Между @Position И @Position

, Который должен получить Вас желаемые результаты, если я читаю вопрос правильно.

-5
ответ дан user17670 19 February 2011 в 04:25
поделиться

Да, Вы могли сделать это с некоторыми действительно ужасными хитами в системные таблицы. Необходимо было бы, вероятно, попасть в мир динамического sql.

я действительно, действительно не рекомендуйте этот подход.

, Если бы это не удержало Вас, то это могло бы получить Вас, запустился ( касательно ):

select table_name, column_name, ordinal_position, data_type
from information_schema.columns
order by 1,3
2
ответ дан Michael Haren 19 February 2011 в 04:25
поделиться

Нет, Вы не можете выбрать столбцы на основе их порядкового положения, насколько я знаю.

При взгляде на проводить ссылку SQL, нет ничего, чтобы предположить, что Вы можете ( http://msdn.microsoft.com/en-us/library/ms176104 (SQL.90) .aspx).

1
ответ дан Eric Minkes 19 February 2011 в 04:25
поделиться

Я не знаю ни о каком способе сделать это за исключением использования динамического SQL. Возможно, если Вы включаете немного больше информации о том, почему Вы чувствуете, что необходимо использовать порядковые номера, кто-то на здесь может дать Вам совет относительно того, как обойти ту проблему.

РЕДАКТИРОВАНИЕ: Я вижу, что Вы ответили на это до некоторой степени в другом комментарии. Можно ли обеспечить больше специфических особенностей? Импорт proc и/или определения таблицы?

0
ответ дан Tom H 19 February 2011 в 04:25
поделиться

Необходимо было бы сделать что-то как

declare @col1 as varchar(128)
declare @col2 as varchar(128)
declare @sq1 as varchar(8000) 

select @col1 = column_name from information_schema.columns where table_name = 'tablename'
and ordinal_position = @position

select @col2 = column_name from information_schema.columns where table_name = 'tablename'
and ordinal_position = @position2

set @sql = 'select ' + col1 ',' + col2 'from tablename' 

exec(@sql)
15
ответ дан Booji Boy 19 February 2011 в 04:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: