ВНУТРЕННЕЕ СОЕДИНЕНИЕ с ВКЛ. Все столбцы, кроме одного столбца

Я настоятельно рекомендую не использовать set exrc

Даже с set secure, под * nix, vim все равно будет запускать автокоманды, shell и т. д., если вы являетесь владельцем файла. Поэтому, если вы решили отредактировать файл в этом tarball, я отправил вас с .vimrc, содержащим:

autocmd BufEnter * :silent! !echo rm -rf ~/

, вы, вероятно, будете менее забавны, чем я.

1
задан EzLo 18 January 2019 в 09:57
поделиться

1 ответ

Если я правильно понял вашу проблему, думаю, вы могли бы динамически генерировать запрос, который вы хотите использовать, используя следующий код:

DECLARE @SQL nvarchar(max) = 'SELECT  ',
    @TBL1 nvarchar(50) = 'data',
    @TBL2 nvarchar(50) = 'data1',
    @EXCLUDEDCOLUMNS nvarchar(100)= 'ID,col1'

-- column selection
SELECT @sql += @tbl1 + '.' + COLUMN_NAME + ' ,
        '
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @TBL1

-- from clause and remove last ,

set @SQL = LEFT(@sql,LEN(@sql) - 5)


SET @sql += '
FROM ' + @TBL1 + ' INNER JOIN
     ' + @TBL2 + '
  ON '

-- define the on clause
SELECt @SQL  += @tbl1 + '.' + COLUMN_NAME + ' = '+ @tbl2 + '.' + COLUMN_NAME +',
     '
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = @TBL1
  AND COLUMN_NAME not in (@EXCLUDEDCOLUMNS)

--remove last ,

set @SQL = LEFT(@sql,LEN(@sql) - 3)

--SELECt @SQL
EXEC SP_EXECUTESQL @sql 

Перед выполнением убедитесь, что @sql сформирован правильно. выберите столбцы, которые вы хотите исключить из предложения on, используя параметр @EXCLUDEDCOLUMNS.

0
ответ дан sapi 18 January 2019 в 09:57
поделиться
Другие вопросы по тегам:

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