У меня есть таблица vendors
в моей базе данных, с которой я экспериментирую, как показано ниже 
И когда я запускаю команду sql ниже
SELECT vendor_name
FROM vendors
ORDER BY vendor_name
LIMIT 10
Я получаю вывод ниже 
Моя проблема заключается в попытке извлечь второе слово из каждого vendor_name
, и когда второе слово не существует, оно должновернуть пустую ячейку.
И ниже приведен SQL-запрос, который я написал, чтобы сделать это
SELECT vendor_name,
SUBSTRING(
SUBSTRING( vendor_name, LOCATE(' ', vendor_name) + 1),
1,
LOCATE( ' ', SUBSTRING( vendor_name, LOCATE(' ', vendor_name) + 1) ) - 1
) AS second_word
FROM vendors
ORDER BY vendor_name
LIMIT 10
А вот выходные данные этого SQL-запроса 
Если вы заметили из вышеприведенного вывода, что когда слова в vendor_name
больше двух, он возвращает второе слово просто отлично, а когда vendor_name
содержит одно слово, он возвращает пустую ячейку какожидается.
Проблема возникает, когда vendor_name
содержит ровно два слова, вместо возврата второго слова, он возвращает пустую ячейку, например, в случае American Express
и ASC Signs
.
Как мне улучшить мой запрос, чтобы даже когда vendor_name
содержал дваo слова, оно возвращает второе слово вместо пустой ячейки?
Спасибо.