Смените foodVATRate
на decimal
. Кажется, нет никаких причин для его удвоения.
Я не думаю, что Вы можете. Как @Michael Харен показал, можно использовать порядковые положения В пунктах ORDER BY, но я никогда не видел их используемый в другом месте в SQL Server.
я не уверен, какую проблему Вы имеете со своим одноразовым импортом данных, которому это помогло бы с - по-видимому, некоторое неудачное имя столбца? Можно ли объяснить немного больше?
Можно использовать этот запрос
select * from information_schema.columns
для получения порядковых положений столбцов. Как Michael Haren записал, необходимо будет создать динамический запрос с помощью этого, или в коде или в sproc, которому Вы передаете позиции столбцов.
FWIW, это - чистое зло.
кроме того, deathofrats является правильным, Вы не можете действительно сделать этого, так как Вы будете создавать регулярный запрос w/имена столбцов на основе положения.
При использовании MS SQL 2005, можно использовать функцию ROW_NUMBER.
ИЗБРАННЫЙ Col1, Col2, ROW_NUMBER () ПО (ORDER BY Col1) ОТ Теста, ГДЕ ROW_NUMBER () По (Порядок Col1) Между @Position И @Position
, Который должен получить Вас желаемые результаты, если я читаю вопрос правильно.
Да, Вы могли сделать это с некоторыми действительно ужасными хитами в системные таблицы. Необходимо было бы, вероятно, попасть в мир динамического sql.
я действительно, действительно не рекомендуйте этот подход.
, Если бы это не удержало Вас, то это могло бы получить Вас, запустился ( касательно ):
select table_name, column_name, ordinal_position, data_type
from information_schema.columns
order by 1,3
Нет, Вы не можете выбрать столбцы на основе их порядкового положения, насколько я знаю.
При взгляде на проводить ссылку SQL, нет ничего, чтобы предположить, что Вы можете ( http://msdn.microsoft.com/en-us/library/ms176104 (SQL.90) .aspx).
Я не знаю ни о каком способе сделать это за исключением использования динамического SQL. Возможно, если Вы включаете немного больше информации о том, почему Вы чувствуете, что необходимо использовать порядковые номера, кто-то на здесь может дать Вам совет относительно того, как обойти ту проблему.
РЕДАКТИРОВАНИЕ: Я вижу, что Вы ответили на это до некоторой степени в другом комментарии. Можно ли обеспечить больше специфических особенностей? Импорт proc и/или определения таблицы?
Необходимо было бы сделать что-то как
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)