Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Замена значения из выдачи по запросу (если N более 10 то 10 иначе N)  [new]
erros
Member

Откуда:
Сообщений: 13
Доброго дня
В Excel (Office 2003 SP3)
При помощи Microsoft Query 11.8164.8341 SP3
Хочу взять с SQL 2000 SP4 некоторые значения...
Хочу все значения, но если значение более 10, то отображалось бы 10

Запрос
SELECT ARTIKULI.KOD, ARTIKULI.KOLVO
FROM TESTBASE.user.ARTIKULI ARTIKULI

отрабатывается нормально

Запрос
SELECT ARTIKULI.KOD, ARTIKULI.KOLVO(case when ARTIKULI.KOLVO > 10 then 10 else ARTIKULI.KOLVO)
FROM TESTBASE.user.ARTIKULI ARTIKULI

Не хочет работать, наверное потому что я что-то не так делаю...

Запрос
SELECT CASE ARTIKULI.KOD, ARTIKULI.KOLVO CASE IS > 10 10 ELSE ARTIKULI.KOLVO
FROM TESTBASE.user.ARTIKULI ARTIKULI

Тоже не работает...

Подскажите пожалуйста, как это должно выглядеть.
Может это не case мне нужно, а if then else или какая другая команда?
28 окт 14, 14:50    [16767898]     Ответить | Цитировать Сообщить модератору
 Re: Замена значения из выдачи по запросу (если N более 10 то 10 иначе N)  [new]
erros
Member

Откуда:
Сообщений: 13
select
case ARTIKULI.KOLVO
when 11 then 10
when 10 then 10
when 9 then 9
when 8 then 8
when 7 then 7
when 6 then 6
when 5 then 5
when 4 then 4
when 3 then 3
when 2 then 2
when 1 then 1
when 0 then 0
end
FROM TESTBASE.user.ARTIKULI ARTIKULI

Такой вариант вместо значений 12 и более выдаёт пустые строки, можно конечно прописать 12, прописать 13... но вариантов то сотни...
28 окт 14, 15:22    [16768073]     Ответить | Цитировать Сообщить модератору
 Re: Замена значения из выдачи по запросу (если N более 10 то 10 иначе N)  [new]
erros
Member

Откуда:
Сообщений: 13
select
case ARTIKULI.KOLVO
when 10 then 10
when 9 then 9
when 8 then 8
when 7 then 7
when 6 then 6
when 5 then 5
when 4 then 4
when 3 then 3
when 2 then 2
when 1 then 1
when 0 then 0
else 10
end
FROM TESTBASE.user.ARTIKULI ARTIKULI

Не пойдет (добавил else 10) : значения бывают менее 0, их на 10 заменять не нужно
28 окт 14, 15:29    [16768120]     Ответить | Цитировать Сообщить модератору
 Re: Замена значения из выдачи по запросу (если N более 10 то 10 иначе N)  [new]
erros
Member

Откуда:
Сообщений: 13
select
case ARTIKULI.KOLVO
when ARTIKULI.KOLVO > 10 then 10
else ARTIKULI.KOLVO
end
FROM TESTBASE.user.ARTIKULI ARTIKULI

очень бы хотелось что бы такой вариант работал, но не работает же :(
28 окт 14, 15:33    [16768147]     Ответить | Цитировать Сообщить модератору
 Re: Замена значения из выдачи по запросу (если N более 10 то 10 иначе N)  [new]
miksoft
Member

Откуда:
Сообщений: 38851
SELECT ARTIKULI.KOD, LEAST(ARTIKULI.KOLVO,10)
FROM TESTBASE.user.ARTIKULI ARTIKULI
28 окт 14, 15:34    [16768154]     Ответить | Цитировать Сообщить модератору
 Re: Замена значения из выдачи по запросу (если N более 10 то 10 иначе N)  [new]
erros
Member

Откуда:
Сообщений: 13
miksoft,

'LEAST' is not a recognized function name.
Statement(s) could not be prepared
28 окт 14, 15:42    [16768212]     Ответить | Цитировать Сообщить модератору
 Re: Замена значения из выдачи по запросу (если N более 10 то 10 иначе N)  [new]
Alex_Ustinov
Member

Откуда: Nickel
Сообщений: 3826
у вас MySQL или MS SQL?
28 окт 14, 15:50    [16768267]     Ответить | Цитировать Сообщить модератору
 Re: Замена значения из выдачи по запросу (если N более 10 то 10 иначе N)  [new]
erros
Member

Откуда:
Сообщений: 13
Alex_Ustinov
у вас MySQL или MS SQL?

У меня создание запроса из Excel через Query в SQL
Я не там тему создал?
28 окт 14, 15:55    [16768309]     Ответить | Цитировать Сообщить модератору
 Re: Замена значения из выдачи по запросу (если N более 10 то 10 иначе N)  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 21249
erros
Я не там тему создал?
Стопудово...
28 окт 14, 16:00    [16768336]     Ответить | Цитировать Сообщить модератору
 Re: Замена значения из выдачи по запросу (если N более 10 то 10 иначе N)  [new]
erros
Member

Откуда:
Сообщений: 13
SELECT case when ARTIKULI.KOLVO > 10 then 10 when ARTIKULI.KOLVO < 0 then 0 else ARTIKULI.KOLVO end
FROM TESTBASE.user.ARTIKULI ARTIKULI


оставлю для тех, кто задастся подобным вопросом
сам через поисковик простых примеров не нашел
28 окт 14, 16:29    [16768517]     Ответить | Цитировать Сообщить модератору
 Re: Замена значения из выдачи по запросу (если N более 10 то 10 иначе N)  [new]
erros
Member

Откуда:
Сообщений: 13
И в какую ветку мне обращаться в следующий раз по вопросам SQL запросов через QUERY?
28 окт 14, 16:30    [16768525]     Ответить | Цитировать Сообщить модератору
 Re: Замена значения из выдачи по запросу (если N более 10 то 10 иначе N)  [new]
Arm79
Member

Откуда: МО, Раменское
Сообщений: 3695
erros
case when ARTIKULI.KOLVO > 10 then 10 else ARTIKULI.KOLVO

ну хотя бы потому что "case when ... then ... else ... end"
28 окт 14, 16:33    [16768548]     Ответить | Цитировать Сообщить модератору
 Re: Замена значения из выдачи по запросу (если N более 10 то 10 иначе N)  [new]
miksoft
Member

Откуда:
Сообщений: 38851
erros
SQL 2000 SP4
Сорри, сразу не заметил, переношу.

P.S. Мне казалось, что функция LEAST() есть во всех СУБД.

Модератор: Тема перенесена из форума "MySQL".


Сообщение было отредактировано: 28 окт 14, 16:44
28 окт 14, 16:44    [16768631]     Ответить | Цитировать Сообщить модератору
 Re: Замена значения из выдачи по запросу (если N более 10 то 10 иначе N)  [new]
Wlr-l
Member

Откуда:
Сообщений: 602
miksoft, очень просто:

select 
 case
   when ARTIKULI.KOLVO>=10 then 10
   else ARTIKULI.KOLVO
 end
FROM TESTBASE.user.ARTIKULI ARTIKULI
28 окт 14, 17:16    [16768845]     Ответить | Цитировать Сообщить модератору
 Re: Замена значения из выдачи по запросу (если N более 10 то 10 иначе N)  [new]
VGalamakh
Member

Откуда: Киев (Альба)
Сообщений: 66
1.Пропустили запятую
2.Не добавили end
SELECT ARTIKULI.KOD,(case when ARTIKULI.KOLVO > 10 then 10 else ARTIKULI.KOLVO end) KOLVO
FROM TESTBASE.user.ARTIKULI ARTIKULI
29 окт 14, 13:22    [16772449]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить