Инструкция SQL orderby if, если одно поле пустое, используйте другое

#sql #sql-order-by #multiple-tables

#sql #sql-order-by #несколько таблиц

Вопрос:

У меня есть запрос с комбинацией двух таблиц и связан с идентификатором:

Первая таблица category

 ID|code|parent
1 |cd01|0
2 |cd02|0
3 |cd03|0
  

и вторая таблица category_description

 ID|name |lang_id
1 |cat01|1
1 |cat01|2
1 |cat01|3
2 |cat02|2
2 |cat02|3
3 |cat03|1
3 |cat03|2
  

и теперь есть экземпляр, в котором категория не имеет записи category_description , lang_id = 1 поэтому, когда я перечисляю как grid, я использую code вместо name, и я хочу упорядочить по is, чтобы, когда name не задано, я использовал код.

 |  ID  | Name         |
------------------------ 
|  1   | cat01 - cd01 |
|  2   | cd02         |
|  3   | cat03 - cd03 | 
  

Код:

 SELECT c.code, cd.name  
FROM category c, category_description cd 
WHERE cd.ID = c.ID 
GROUP BY cd.ID 
ORDER BY 
  

если cd.name не установлено использование c.code

Любая помощь очень ценится, заранее спасибо.

Комментарии:

1. Не могли бы вы показать свой запрос?

2. что такое lang_id? и какова логика вашего вывода? почему cat01 id на выходе отображается ( 1 ) два раза?

3. Вредные привычки, от которых нужно отказаться: использование объединений в старом стиле — этот стиль списка таблиц, разделенных запятыми , в старом стиле был отменен стандартом SQL ANSI- 92 (более 20 лет назад)

4. ваш оператор sql не соответствует вашим выводам. Не следует выбирать «*»