powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / COALESCE ?
13 сообщений из 13, страница 1 из 1
COALESCE ?
    #39676297
Leoooo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемые форумчане, возможно ли такое и как?

Есть таблица
Id IdUpdtd ru en
1 NULL аааа fffff
2 NULL вввв NULL
3 1 сссс NULL

Каким запросом можно получить вот такой результирующий набор?
Id Word
1 fffff
2 вввв
3 аааа

Огромное спасибо.
...
Рейтинг: 0 / 0
COALESCE ?
    #39676301
Посетитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leoooo,

проще всего так

Код: sql
1.
2.
3.
4.
5.
with a(Id,Word) as
(select 1,'fffff'
union all select 2,'вввв'
union all select 3,	'аааа')
select * from a



остальные варианты предполагают телепатию
...
Рейтинг: 0 / 0
COALESCE ?
    #39676311
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
SELECT Id, Word=ISNULL(en,ru) FROM [Есть таблица];

Не понял только, почему для Id=3 должно получиться 'aaaa'.
...
Рейтинг: 0 / 0
COALESCE ?
    #39676314
Leoooo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посетитель,
как-то совсем просто - проще строить таблицы подобные результирующему набору.
К чему запросы?
Вопрос был другой и смысл:
Если en не NULL выбираем en
Если en NULL,
то
если IdUpdtd не NULL выбираем ru у которого Id=IdUpdtd
если IdUpdtd NULL выбираем ru с тем же Id
...
Рейтинг: 0 / 0
COALESCE ?
    #39676316
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leoooo,

авторВопрос был другой и смысл:
Если en не NULL выбираем en
Если en NULL,
то
если IdUpdtd не NULL выбираем ru у которого Id=IdUpdtd
если IdUpdtd NULL выбираем ru с тем же Id
фантастика, вам бы детективы писать
...
Рейтинг: 0 / 0
COALESCE ?
    #39676324
Посетитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leoooo,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
with a(Id,IdUpdtd,ru,en) as
(         select 1,NULL,'аааа','fffff'
union all select 2,NULL,'вввв',NULL
union all select 3,1   ,'сссс',NULL
)
select a.id,coalesce(a.en,b.ru,a.ru) word
  from a
  left join a b
    on b.id = a.idUpdtd
...
Рейтинг: 0 / 0
COALESCE ?
    #39676332
Leoooo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посетитель,
YES
COOL
Спасибо огромное!
Только зачем WITH?
...
Рейтинг: 0 / 0
COALESCE ?
    #39676336
Leoooo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TaPaK, сам пиши.
А так смотри ответ от Посетитель.
...
Рейтинг: 0 / 0
COALESCE ?
    #39676338
Посетитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LeooooТолько зачем WITH?

no comments
...
Рейтинг: 0 / 0
COALESCE ?
    #39676343
Leoooo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посетитель,
select a.id,coalesce(a.en,b.ru,a.ru) word
from [Есть таблица] a
left join [Есть таблица] b
on b.id = a.idUpdtd
...
Рейтинг: 0 / 0
COALESCE ?
    #39676344
TaPaK
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
как занимательно, спасибо что внесл свет в эту тёмную пещеру
...
Рейтинг: 0 / 0
COALESCE ?
    #39676346
Посетитель
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Leoooo,

у меня с ошибкой падает

Msg 208, Level 16, State 1, Line 1Invalid object name 'Есть таблица'.
...
Рейтинг: 0 / 0
COALESCE ?
    #39676349
Leoooo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посетитель,

)))))
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / COALESCE ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]