У меня есть таблица, но я не знаю ее столбцов. Это имя XВыбрать оператор с строковым выражением
я могу найти его столбцы с помощью следующего кода:
DECLARE @columnNames NVARCHAR(4000) = ''
SELECT @columnNames = @columnNames + ', ' + COLUMN_NAME FROM INFORMATION_SCHEMA.Columns WHERE TABLE_NAME = 'X'
Теперь я хочу использовать отборное заявление в моей таблице, но как?
Я думаю, это должно быть так. Я не нашел правильный путь:
SELECT SUBSTRING(@columnNames, 2, LEN(@columnNames)) FROM X
редактировать:
На самом деле я хочу, чтобы объединить столбцы без столбца идентификаторов.
DECLARE @columnNames NVARCHAR(4000) = ''
SELECT @columnNames = @columnNames + ' + ' + COLUMN_NAME FROM INFORMATION_SCHEMA.Columns WHERE TABLE_NAME = 'X' AND COLUMN_NAME <> 'id'
А потом
SELECT SUBSTRING(@columnNames, 4, LEN(@columnNames)) FROM X
Я знаю, что это плохая форма, но почему не 'выбрать * из x' работы для тебя? –
Фактически я хочу объединить столбцы без столбца id. ВЫБОР @columnNames = @columnNames + '+' + column_name ИЗ INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 'X' AND COLUMN_NAME <> 'ID' , а затем я хочу использовать выберите ... – ogun