Как манипулировать столбцом, выбранным * в SQLite? - PullRequest
0 голосов
/ 17 февраля 2012

Я хочу, чтобы запрос возвращал все строки и все столбцы с одним предупреждением: если в данной строке colN равно нулю, то вместо этого возвращает строку 'FOO'.

Почему я просто не использую SELECT col1, col2, ..., COALESCE(colN, 'FOO')?

Я реализую абстрактный интерфейс, и поэтому мне необходимо использовать SELECT запросов, которые SELECT * (потому чтоЯ не могу делать предположения о том, какие столбцы есть).Я могу только предположить, что существует 1 столбец: colN.

Что бы это мне дало?

Мне это нужно, потому что этот запрос используется в сочетании с UNION, и это позволяетмне отслеживать происхождение данных.

Есть идеи, как это сделать?

Ответы [ 2 ]

2 голосов
/ 17 февраля 2012

Одна вещь, которую вы могли бы сделать, это

SELECT *, COALESCE(colN, 'FOO') as CoalescedColN

если возможно настроить другие варианты выбора в UNION соответственно

0 голосов
/ 17 февраля 2012

Я не знаю, может ли SQL Lite использовать эту технику, но это то, что я сделал бы в большинстве других БД:

выберите * из (ВЫБЕРИТЕ col1, col2, ..., COALESCE (colN, 'FOO') из таблицы) a

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...