SQL выберите для последовательного столбца

0

Предположим, у меня есть данные со столбцами:

aa1, aa2, aa3, aa4, aa5, aa6

и так далее.

Я ищу выбранный запрос, где я могу просто упомянуть что-то вроде:

select aa[1 to n] from table...

Есть ли способ сделать это напрямую?

Спасибо

Теги:
sql-server
sqlcommand

1 ответ

0

В MariaDB есть системные настройки в базе данных information_schema где определены все схемы, таблицы, столбцы и т.д.

Используя это, вы можете перечислить все сведения о таблице и использовать ее для составления "динамического" запроса по мере необходимости.

Пример определения таблицы:

CREATE TABLE 'tablename' (
    'id' INT(11) NOT NULL AUTO_INCREMENT,
    'aa1' INT(11) NULL DEFAULT NULL,
    'aa2' INT(11) NULL DEFAULT NULL,
    'aa3' INT(11) NULL DEFAULT NULL,
    'aa4' INT(11) NULL DEFAULT NULL,
    'aa5' INT(11) NULL DEFAULT NULL,
    'aa6' INT(11) NULL DEFAULT NULL,
    'aa7' INT(11) NULL DEFAULT NULL,
    'aa8' INT(11) NULL DEFAULT NULL,
    PRIMARY KEY ('id')
)
COLLATE='utf8_bin'
ENGINE=InnoDB
AUTO_INCREMENT=3
;

Запрос к information_schema для отображения таблиц:

SELECT GROUP_CONCAT(COLUMN_NAME) FROM information_schema.'COLUMNS' 
WHERE TABLE_SCHEMA = 'stackoverflow' 
AND TABLE_NAME = 'tablename' 
AND COLUMN_NAME LIKE 'aa%'

И результат:

aa1,aa2,aa3,aa4,aa5,aa6,aa7,aa8

Поэтому вы можете построить свой запрос по мере необходимости.

Редактировать:
В документации по SQL говорится: "Не используйте представления INFORMATION_SCHEMA для определения схемы объекта. Единственный надежный способ найти схему объекта - запросить представление каталога sys.objects ".

  • 1
    Каждый раз, когда я получаю минус (-), я удивляюсь, почему. Пожалуйста, скажите мне в комментарии, что не так с моим опубликованным ответом. Мне нравится изучать то, чего я еще не знаю ...
  • 0
    Дала тебе +1, потому что мне нравится изучать то, чего я еще не знаю ;)
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню