Изменить значения после запроса выбора - PullRequest
0 голосов
/ 25 июня 2018

Привет всем, у меня проблемы, и я не могу найти ответ, который будет работать для моей проблемы.

Я использую Microsoft Access и выполняю запрос выбора. Затем я хочу изменить значения в столбце для этого запроса.

например

SELECT Table.column1, Table.Column2 
FROM Table

Я получаю следующее:

|Column1|Column2|
    A       1
    B       2
    C       3
    D       2
    E       1
    F       2
    G       3
    H       3
    I       1
    J       2
    K       2

Я хочу, чтобы запрос теперь заменял все 1 в столбце 2 на 100, все 2 в столбце 2 на 200 и все 3 в столбце 2 на 300.

Я не хочу обновлять значения в column2 исходной таблицы, я хочу изменить значения только в запросе.

Ответы [ 4 ]

0 голосов
/ 25 июня 2018

Используйте функцию switch():

select column1, 
       switch(column2 = 1, 100,
              column2 = 2, 200,
              column2 = 3, 300,
              column2
             ) as new_column2
from t;
0 голосов
/ 25 июня 2018

Вы можете выполнять вычисления в ваших запросах выбора, например:

SELECT Table.column1, Table.Column2 * 100 As Column2
FROM Table

Это отображает значение Column2, умноженное на 100, но не изменяет базовую таблицу.

Вы не можете изменить определенные строки только в запросе.Если вы хотите изменить определенные строки, вы можете просто скопировать таблицу или использовать запрос make-table, чтобы вставить результаты запроса в таблицу, а затем изменить эту таблицу.

0 голосов
/ 25 июня 2018

Другой вариант с IIF():

select Col1, iif ( Col2 = 1, 100, 
                   iif ( Col2 = 2, 200, 
                         iif ( Col2 = 3, 300,  col2 ) 
                       ) 
                 ) as col2
from table t;
0 голосов
/ 25 июня 2018

Если ваши данные column2 только 1, 2 и 3, вы можете multiply на 100

SELECT Table.column1
     , Table.Column2 * 100 as Column2 
FROM Table

Если ваши данные содержат другие значения, кроме 1,2 и 3, вы можете использовать IIF

SELECT Table.column1
     , IIF(Table.Column2 in (1,2,3),Table.Column2 * 100, Table.Column2) as Column2 
FROM Table
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...