Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Словарь на основе одной таблицы.

331
05 ноября 2007 года
alexburzak
335 / / 23.04.2006
MS SQL Server.
Задача: делаю словарь, допустим перевод с английского на русский.
Таблица элементарная. Два поля скажем EngWord и RusWord.
Написал вот так:
 
Код:
SELECT EngWord, RusWord
FROM DictionaryEngToRus
WHERE EngWord IN ('case', 'cases', 'werr', 'accessories')

При этом слово 'werr' не существует(нет на него перевода).
В результате получаю таблицу из трех строк,а хочется из четерех.
Что бы на слове 'werr' было написанно к пример «NULL»
Как я могу отобразить также и те поля в которых нет перевода?
337
05 ноября 2007 года
shine
719 / / 09.06.2006
А если так SELECT EngWord, ISNULL(Rusword, 'нет перевода') FROM ... ?

Не проверял.
331
05 ноября 2007 года
alexburzak
335 / / 23.04.2006
Проверил - не работает.
Думаю так как в моем случаии слово "без перевода" физически не присутствует в таблице. А вот если оно было бы в таблице...
Есть еще варианты?
337
05 ноября 2007 года
shine
719 / / 09.06.2006
Я немного не это имел ввиду. ISNULL заменяет значение из столбца(первый аргумент) на значение второго аргумента если в столбце NULL. Если в столбце не NULL, то функция возвращает значение из таблицы.

Может что-то напутал с синтаксисом, но копать имхо нужно в эту сторону.
331
06 ноября 2007 года
alexburzak
335 / / 23.04.2006
А как быть если такой записи вообще нет в таблице? ИМХО Нужно создать временную таблицу и внести в нее слова а затем можно попробывать объединить(JOIN) с источником . . .
8.2K
06 ноября 2007 года
Ora-cool
211 / / 20.09.2007
Цитата: alexburzak
А как быть если такой записи вообще нет в таблице? ИМХО Нужно создать временную таблицу и внести в нее слова а затем можно попробывать объединить(JOIN) с источником . . .


Да, как вариант через временную таблицу.
Либо для каждого слова использовать отдельный подзапрос и объединять их с помощью union all, что не очень производительно.

331
06 ноября 2007 года
alexburzak
335 / / 23.04.2006
Понял, спасибо, так и сделаю.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог