SQL SELECT с несколькими столбцами INTO с несколькими переменными

Я конвертирую SQL из Teradata в SQL Server

в Teradata они имеют формат

SELECT col1, col2
FROM table1
INTO @variable1, @variable2

В SQL Server я нашел

SET @variable1 = (
SELECT col1 
FROM table1
);

Это позволяет использовать только один столбец /переменную для каждого оператора. Как назначить 2 или более переменных с помощью одного оператора SELECT?

66 голосов | спросил ala 27 PM00000040000005431 2009, 16:31:54

2 ответа


0
SELECT @variable1 = col1, @variable2 = col2
FROM table1
ответил David M 27 PM00000040000005631 2009, 16:32:56
0
SELECT @var = col1,
       @var2 = col2
FROM   Table

Вот некоторая интересная информация о SET /SELECT

  
  • SET - это стандарт ANSI для назначения переменных, а SELECT - нет.
  •   
  • SET может назначать только одну переменную одновременно, SELECT может сделать несколько   назначения сразу.
  •   
  • При назначении из запроса SET может назначать только скалярное значение. Если   запрос возвращает несколько значений /строк   тогда SET вызовет ошибку. ВЫБРАТЬ   назначит одно из значений   переменная и скрыть тот факт, что   несколько значений были возвращены (так   вы, вероятно, никогда не знаете, почему что-то   что-то пошло не так - повеселись   устранение неполадок, что один)
  •   
  • При назначении из запроса, если значение не возвращено, SET будет   назначьте NULL, где SELECT не будет   сделать назначение на всех (так что   переменная не будет изменена с его   предыдущее значение)
  •   
  • Что касается различий в скорости - нет прямой разницы между SET   и ВЫБРАТЬ. Однако способность SELECT   сделать несколько заданий в одном   выстрел дает ему небольшую скорость   преимущество перед SET.
  •   
ответил Svetlozar Angelov 27 PM00000040000005631 2009, 16:33:56

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

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132