Чтение нескольких столбцов из одной таблицы на основе нашей входной строки - PullRequest
0 голосов
/ 30 марта 2020

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

Пример:

Если input = "table_medical", я хочу выбрать столбцы, такие как medi_col1, medi_col2, medi_col2. Если input = "table_pharmacy", я хочу выбрать столбцы, такие как medi_phar1, medi_phar2, medi_phar1

sql ("выбрать случай, когда $ input =" table_medical "затем medi_col1) // как это

, пожалуйста, помогите мне завершить это.

Ответы [ 2 ]

0 голосов
/ 30 марта 2020

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

Один метод использует union all:

select medi_col1, medi_col2, medi_col2
from t
where @input = 'table_medical'
union all
select medi_phar1, medi_phar2, medi_phar1
from t
where @input = 'table_pharmacy';
0 голосов
/ 30 марта 2020
SET @input="table_medical";

SELECT
    CASE WHEN @input="table_medical" THEN medi_col1 ELSE medi_phar1 END  as medi_col1,
    CASE WHEN @input="table_medical" THEN medi_col2 ELSE medi_phar2 END  as medi_col2
    CASE WHEN @input="table_medical" THEN medi_col3 ELSE medi_phar3 END  as col3
FROM MyTable
  • Типы данных для medi_col1 и medi_phar1 должны быть одинаковыми (и для остальных столбцов тоже)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...