Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 А есть ли аналог DECODE из оракла в MSSQL  [new]
Oracle
Member [скрыт]

Откуда:
Сообщений: 1450
Господа, а может кто подскажет, есть ли здесь аналого слова DECODE взятого из оракула...
28 июл 04, 13:09    [841878]     Ответить | Цитировать Сообщить модератору
 Re: А есть ли аналог DECODE из оракла в MSSQL  [new]
Glory
Member

Откуда:
Сообщений: 104760
А какие действия производит "слово DECODE " ?
28 июл 04, 13:11    [841888]     Ответить | Цитировать Сообщить модератору
 Re: А есть ли аналог DECODE из оракла в MSSQL  [new]
Luchkin Dmitry
Member

Откуда: Новосибирск -> Ангарск -> Братск -> Мск
Сообщений: 1921
г-н Oracle... я вас умаляю (видите, -- встал на колени) прилагать к каждому своему ТАКОМУ вопросу краткое описание смысла этой фишки в оракле. прилагать сразу, а не после абсолютно логичного вопроса вторым постом - в третьем.
Я бы мог и мимо пройти, но из спортивного интереса...
28 июл 04, 13:12    [841894]     Ответить | Цитировать Сообщить модератору
 Re: А есть ли аналог DECODE из оракла в MSSQL  [new]
Oracle
Member [скрыт]

Откуда:
Сообщений: 1450
ну так получается

decode (xxx,1,'one',2,'two',4,'four,'none')

значит если xxx = 1 возращает one
2 - two
3.... ...
4 - four
а если не одно то возращает none
28 июл 04, 13:13    [841899]     Ответить | Цитировать Сообщить модератору
 Re: А есть ли аналог DECODE из оракла в MSSQL  [new]
Oracle
Member [скрыт]

Откуда:
Сообщений: 1450
to Luchkin Dmitry

извините, больше не буду. Логичное замечание
28 июл 04, 13:14    [841903]     Ответить | Цитировать Сообщить модератору
 Re: А есть ли оракл в MSSQL  [new]
Luchkin Dmitry
Member

Откуда: Новосибирск -> Ангарск -> Братск -> Мск
Сообщений: 1921
Жаль, но не припомню такого в мсскл...
Но хорошо, что не помню случая, когда бы это понадобилось...
28 июл 04, 13:16    [841910]     Ответить | Цитировать Сообщить модератору
 Re: А есть ли аналог DECODE из оракла в MSSQL  [new]
Glory
Member

Откуда:
Сообщений: 104760
case xxx when 1 then 'one' when 2 then 'two' when 4 then 'four' else 'none' end
28 июл 04, 13:19    [841922]     Ответить | Цитировать Сообщить модератору
 Re: А есть ли аналог DECODE из оракла в MSSQL  [new]
andsm
Member

Откуда: Москва
Сообщений: 1315
Блог
Simple CASE function:

CASE input_expression
WHEN when_expression THEN result_expression
[ ...n ]
[
ELSE else_result_expression
]
END

Searched CASE function:

CASE
WHEN Boolean_expression THEN result_expression
[ ...n ]
[
ELSE else_result_expression
]
END
28 июл 04, 13:20    [841926]     Ответить | Цитировать Сообщить модератору
 Re: А есть ли аналог DECODE из оракла в MSSQL  [new]
Oracle
Member [скрыт]

Откуда:
Сообщений: 1450
ды это же в запросе нельзя использовать
28 июл 04, 13:21    [841933]     Ответить | Цитировать Сообщить модератору
 Re: А есть ли аналог DECODE из оракла в MSSQL  [new]
Oracle
Member [скрыт]

Откуда:
Сообщений: 1450
ой пардон, спасибо все ок
28 июл 04, 13:22    [841937]     Ответить | Цитировать Сообщить модератору
 Re: А есть ли аналог DECODE из оракла в MSSQL  [new]
Oracle
Member [скрыт]

Откуда:
Сообщений: 1450
А вообще оно будет быстро в запросе работать или как.
28 июл 04, 13:25    [841949]     Ответить | Цитировать Сообщить модератору
 Re: А есть ли аналог DECODE из оракла в MSSQL  [new]
Luchkin Dmitry
Member

Откуда: Новосибирск -> Ангарск -> Братск -> Мск
Сообщений: 1921
да..... вот так простой вопрос с примером в виде функции мозги может заклинить... хотя, по большому счёту CASE не аналог, а намного круче но и более громоздкая в написании весчь
28 июл 04, 13:25    [841952]     Ответить | Цитировать Сообщить модератору
 Re: А есть ли аналог DECODE из оракла в MSSQL  [new]
GreenSunrise
Member

Откуда:
Сообщений: 12310
Если CASE не нравится по тем или иным причинам (например, количество критериев может меняться или запрос дублируется повсюду или здоровенный слишком CASE), создайте табличку с двумя полями, как минимум одно индексированное да еще и clustered, и джойньтесь с ней. Работать будет быстро.
28 июл 04, 13:31    [841977]     Ответить | Цитировать Сообщить модератору
 Re: А есть ли аналог DECODE из оракла в MSSQL  [new]
Oracle
Member [скрыт]

Откуда:
Сообщений: 1450
Не у меня не большой CASE я просто думаю маленькую функцию сделать, а потом юзать ее везде, так функции запросы тормозят или нет
28 июл 04, 13:34    [841990]     Ответить | Цитировать Сообщить модератору
 Re: А есть ли аналог DECODE из оракла в MSSQL  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 36900
Oracle
Не у меня не большой CASE я просто думаю маленькую функцию сделать, а потом юзать ее везде, так функции запросы тормозят или нет

Бывает.
28 июл 04, 13:35    [842000]     Ответить | Цитировать Сообщить модератору
 Re: А есть ли аналог DECODE из оракла в MSSQL  [new]
_bob
Member

Откуда: Москва
Сообщений: 1654
case в запросе работает примерно так же, как и decode

p.s. а ты их спроси про функцию, сортирующую слова по похожести звучания, а чтоб точно никто не знал, то чтоб с поддержкой русского :-)
28 июл 04, 14:02    [842160]     Ответить | Цитировать Сообщить модератору
 Re: А есть ли аналог DECODE из оракла в MSSQL  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
mk:@MSITStore:C:\Program%20Files\Microsoft%20SQL%20Server\80\Tools\Books\tsqlref.chm::/ts_fa-fz_7oqb.htm
28 июл 04, 14:08    [842187]     Ответить | Цитировать Сообщить модератору
 Re: А есть ли аналог DECODE из оракла в MSSQL  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31328
Если использовать первую версию синтаксиса CASE:
CASE input_expression 
WHEN when_expression THEN result_expression 
[ ...n ] 
[ 
ELSE else_result_expression 
] 
END
то получается почти так-же удобно, как и DECODE, лишь чуть длиннее:
decode (xxx,1,'one',2,'two',4,'four,'none')

CASE ххх WHEN 1 THEN 'one' WHEN 2 THEN 'two' WHEN 4 THEN 'four' ELSE 'none' END
28 июл 04, 15:01    [842552]     Ответить | Цитировать Сообщить модератору
 Re: А есть ли аналог DECODE из оракла в MSSQL  [new]
Oracle
Member [скрыт]

Откуда:
Сообщений: 1450
На самом деле в Оракле тоже есть CASE но постарой привечке я почти ее не юзаю, хотя рекомендуют, мол повышает производительность, и еще там новые фичи с этим есть.

Кстати посмотрел я FullTEXT search , тут конечно равных пока нет MSSQL хотя вроде в Oracke тоже что то подобное появилось.
28 июл 04, 16:13    [842963]     Ответить | Цитировать Сообщить модератору
 Re: А есть ли аналог DECODE из оракла в MSSQL  [new]
_bob
Member

Откуда: Москва
Сообщений: 1654
2 Oracle
Fulltext search на оракле не хуже сиквельного, только вот примочки для поддержки русского стоят для оракла на-а-амного дороже

под функцией подбора по похожести звучания я имел в виду не фуллтекст, я название фунции забыл, а искать лень, если интересно, я дома посмотрю, а завтра напишу как называется
28 июл 04, 17:20    [843363]     Ответить | Цитировать Сообщить модератору
 Re: А есть ли аналог DECODE из оракла в MSSQL  [new]
BugsBunny
Member

Откуда: GMT+5=EST
Сообщений: 2414
SOUNDEX
28 июл 04, 17:30    [843429]     Ответить | Цитировать Сообщить модератору
 Re: А есть ли аналог DECODE из оракла в MSSQL  [new]
Oracle
Member [скрыт]

Откуда:
Сообщений: 1450
to _bob

Ну дык если дорого для русского, можно же под английский перекодирвать да и все ...
28 июл 04, 20:31    [843817]     Ответить | Цитировать Сообщить модератору
 Re: А есть ли аналог DECODE из оракла в MSSQL  [new]
Алексей Ельцов
Member

Откуда: Redmond
Сообщений: 252
автор
Не у меня не большой CASE я просто думаю маленькую функцию сделать, а потом юзать ее везде, так функции запросы тормозят или нет


Только протестируй производительность вначале. Все-таки, для больших запросов вызов функции 1 000 000 000 раз может вылиться в копеечку по сравнению с CASE (который, в отличии от функции, оптимизируется как часть запроса)

Алексей
29 июл 04, 00:31    [843982]     Ответить | Цитировать Сообщить модератору
 Re: А есть ли аналог DECODE из оракла в MSSQL  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Oracle
to _bob

Ну дык если дорого для русского, можно же под английский перекодирвать да и все ...

Почему функция SOUNDEX не работает с русскими словами?
29 июл 04, 06:31    [844048]     Ответить | Цитировать Сообщить модератору
 Re: А есть ли аналог DECODE из оракла в MSSQL  [new]
Browzer
Member

Откуда: Москва
Сообщений: 172
Совершенно верно, правильная ссылка.

Нечеткий поиск, кстати, решает проблемы взамен саундекса в Oracle, но в MS SQL его нет. Ограничения языка запросов в MS SQL не позволяют его полноценно реализовать.

C уважением, Вадим Бондарев
http://www.rco.ru
13 сен 04, 15:28    [955336]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить