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

Откуда:
Сообщений: 12
Есть число в виде 850.0000 Как убрать нули после точки справа и вывести это число в виде 850
Еще вопрос допустим мне нужно вывести среднее значение из таблицы в виде x.xx
Например если написать SELECT AVG(CAST(numguns AS NUMERIC(6,2))) FROM classes
where type = 'bb'
выводиться
9.666666
А мне нужно чтобы было в виде 9.67 То есть не больше трех цифр
18 сен 08, 18:59    [6202182]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать числа в sql  [new]
Glory
Member

Откуда:
Сообщений: 104751
Преобразовать к типу нужно не аргумент функции, а ее результат
18 сен 08, 19:02    [6202197]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать числа в sql  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
tastak
Есть число в виде 850.0000 Как убрать нули после точки справа и вывести это число в виде 850
SELECT REPLACE(RTRIM(REPLACE(REPLACE(RTRIM(REPLACE(LTRIM('  850.0000'),'0',' ')),' ','0'),'.',' ')),' ','.')
Это для случая, когда требуется убрать хвостовые нули и точку, если она оказалась последним символом.
18 сен 08, 19:16    [6202246]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать числа в sql  [new]
ahtolllka
Member

Откуда:
Сообщений: 95
tastak
Есть число в виде 850.0000 Как убрать нули после точки справа и вывести это число в виде 850
Еще вопрос допустим мне нужно вывести среднее значение из таблицы в виде x.xx
Например если написать SELECT AVG(CAST(numguns AS NUMERIC(6,2))) FROM classes
where type = 'bb'
выводиться
9.666666
А мне нужно чтобы было в виде 9.67 То есть не больше трех цифр

Попробуйте
select convert(real, round(850.213123123,3))

3 в round'е обрежет всё после третьего знака мантиссы, а real уберёт ненужные нули.
18 сен 08, 19:56    [6202354]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать числа в sql  [new]
ahtolllka
Member

Откуда:
Сообщений: 95
ahtolllka
tastak
Есть число в виде 850.0000 Как убрать нули после точки справа и вывести это число в виде 850
Еще вопрос допустим мне нужно вывести среднее значение из таблицы в виде x.xx
Например если написать SELECT AVG(CAST(numguns AS NUMERIC(6,2))) FROM classes
where type = 'bb'
выводиться
9.666666
А мне нужно чтобы было в виде 9.67 То есть не больше трех цифр

Попробуйте
select convert(real, round(850.213123123,3))

3 в round'е обрежет всё после третьего знака мантиссы, а real уберёт ненужные нули.

Хотя сам я эту задачу с sql-ex делал через какую=то невероятную ж с использованием формата money...
18 сен 08, 19:58    [6202358]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать числа в sql  [new]
tastak
Member

Откуда:
Сообщений: 12
Сэнкс всем И еще вопрос по задаче в sql
Найдите размеры жестких дисков, совпадающих у двух и более PC. Вывести: HD
Ввожу

select hd from pc where
model in
(select first.model,second.model
from pc first,pc second
where first.hd = second.hd
and first.model >second.model
)


Выдает ошибку Only one expression can be specified in the select list when the subquery is not introduced with EXISTS
18 сен 08, 21:02    [6202553]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать числа в sql  [new]
Памас
Member [заблокирован]

Откуда:
Сообщений: 1708
ahtolllka
Хотя сам я эту задачу с sql-ex делал через какую=то невероятную ж с использованием формата money...


declare @f float
set @f = 9.666666
select convert(decimal(18,2), @f
9.666666	9.67
18 сен 08, 23:11    [6202775]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать числа в sql  [new]
Michael_N
Member

Откуда: Белокуриха, АК
Сообщений: 150
tastak
Сэнкс всем И еще вопрос по задаче в sql
Найдите размеры жестких дисков, совпадающих у двух и более PC. Вывести: HD
Ввожу

select hd from pc where
model in
(select first.model,second.model
from pc first,pc second
where first.hd = second.hd
and first.model >second.model
)


Выдает ошибку Only one expression can be specified in the select list when the subquery is not introduced with EXISTS


Конечно. Вы текст ошибки читали? Или чукча не читатель, чукча - писатель? :-)
Подзапрос должен выглядеть так:
...in ( select hd from pc group by hd having Count(*) > 1 )
Дальше ссобразите?
19 сен 08, 08:10    [6203186]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать числа в sql  [new]
Michael_N
Member

Откуда: Белокуриха, АК
Сообщений: 150
Кстати, привет земляку.
19 сен 08, 08:11    [6203190]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Как убрать числа в sql  [new]
Marica
Member

Откуда: Moscow
Сообщений: 2
Michael_N
tastak
Сэнкс всем И еще вопрос по задаче в sql
Найдите размеры жестких дисков, совпадающих у двух и более PC. Вывести: HD
Ввожу

select hd from pc where
model in
(select first.model,second.model
from pc first,pc second
where first.hd = second.hd
and first.model >second.model
)


Выдает ошибку Only one expression can be specified in the select list when the subquery is not introduced with EXISTS


Конечно. Вы текст ошибки читали? Или чукча не читатель, чукча - писатель? :-)
Подзапрос должен выглядеть так:
...in ( select hd from pc group by hd having Count(*) > 1 )
Дальше ссобразите?



это не подзапрос, а готовый ответ:

select hd from pc group by hd having Count(*) > 1

проверено ;)
26 сен 11, 12:39    [11335966]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить