![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 25.05.2010
Сообщений: 22
|
![]()
Какой функцией в microsoft sql можно заменить функцию из sql oracle decode
которая подразумевает следующее DECODE(E,S1,R1,S2,R2,…,[def]) - Если E соответствует Si, то возвращается Ri, в противном случае - def или NULL, если умолчание не задано. Чтобы выполнить: max(decode( position, 1, column_name, null )) cname1 |
![]() |
![]() |
![]() |
#2 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Код:
I'm learning to live...
|
![]() |
![]() |
![]() |
#3 |
Сама себе режиссер
Старожил
Регистрация: 27.04.2007
Сообщений: 3,365
|
![]()
kity, недавно меня тоже интересовал подобный вопрос. В сети есть предложения использовать switch, только у меня с ним ничего не получилось. Я писала отдельную функцию с if(условие), которая при нахождении нужного Si выдавала Ri, иначе возвращала def. А вызывала я ее уже в SELECT.
SELECT func(...) WHERE ... что-то вроде такого
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
|
![]() |
![]() |
![]() |
#4 |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]()
Девочки, почитайте мануалы (Тема CASE (Transact-SQL) ) по MS SQL Server
![]()
I'm learning to live...
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 25.05.2010
Сообщений: 22
|
![]()
Спасибо! Все получилось
![]() Подскажите, пожалуйста еще функцию: конкатенация (слияние строковых значений). оператор конкатенации — две вертикальные черты (||). Необходимо выполнить следующее: cname1 || nvl2(cname2,','||cname2,null) Как это же выполнить в microsoft sql??? Последний раз редактировалось Stilet; 29.06.2010 в 13:22. |
![]() |
![]() |
![]() |
#6 |
Сама себе режиссер
Старожил
Регистрация: 27.04.2007
Сообщений: 3,365
|
![]()
Stilet, читала... то ли я тупая, то ли я тупая, но ничего не получилось у меня с этими кейсами...
![]() kity, 'строка' + 'строка', насколько я помню
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
|
![]() |
![]() |
![]() |
#7 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
Все там просто: Код:
Цитата:
I'm learning to live...
|
||
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 25.05.2010
Сообщений: 22
|
![]()
Ahtung! Если одна из строк NULL то NULL вернется
ага! у меня так и получилось! как написать, чтобы null не возвращалось, если есть не нулевое значение!!!! |
![]() |
![]() |
![]() |
#9 |
Сама себе режиссер
Старожил
Регистрация: 27.04.2007
Сообщений: 3,365
|
![]()
Stilet, с такими примерами я поняла. Но у меня по айдишнику книги вытягивалась информация о переплете(твердый или мягкий). Но в таблице книг на месте информации о переплете мог стоять NULL, и нужно было чтоб при этом если стоит NULL, то вместо него SELECT возвращал "нет информации". Честно, я не додумалась как это сделать кейсами. И сперва даже не додумалась, что можно просто в таблице с названиями переплетов сделать запись, которая и будет собственно выводить "нет информации". Тогда сделала функцию, возвращающую нужные мне данные.
Если я вас напрягаю или раздражаю, вы всегда можете забиться в угол и поплакать
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Чем заменить assign | pasha_1994 | Помощь студентам | 6 | 21.12.2009 12:29 |
чем заменить goto? | Agronom | Общие вопросы C/C++ | 3 | 19.12.2009 19:43 |
Чем заменить GetFreeSystemResources? | rocky7 | Компоненты Delphi | 0 | 23.08.2009 20:20 |
Чем можно заменить объект BitBtn? | frai | Компоненты Delphi | 3 | 14.04.2007 12:42 |