SQLite Жесткий запрос для форматирования результата - PullRequest
0 голосов
/ 20 ноября 2011

Мне нужно написать запрос, который возвращает элементы в БД в следующем формате. Раньше важно сказать, что у меня есть вкладка , где есть список папок , а на другой вкладке есть список объектов . Не в каждой папке есть объект. Моя цель - вернуть такую ​​информацию:

FOLDER_NAME OBJECT_NAME

, если папке соответствует один или несколько объектов; или

FOLDER_NAME "NO_ELEMENTS"

если папке не соответствует ни один объект.

Структура таблицы:

TAB_FOLD: id_folder, имя_папки

TAB_ELEMENTS: id_folder, id_object, имя_объекта

Вот что я пытался написать:

IF ( (SELECT COUNT(*) FROM TAB_OBJECT WHERE ID_FOLDER=X) > 0 )
{
  SELECT ID_FOLDER, ID_OBJECT, OBJECT_NAME FROM TAB_FOLD WHERE ID_FOLDER=X
}
ELSE 
{
  X, "NO_ELEMENTS"
}

1 Ответ

0 голосов
/ 22 ноября 2011

Может, вот так?

select f.folder_name, coalesce(e.object_name, 'NO_ELEMENTS')
from tab_fold f left join tab_elements e on f.id_folder=e.id_folder
order by 1,2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...