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

Откуда:
Сообщений: 45
Добрый день!

Как написать данный запрос, чтобы в результате получилось 6.918367

select 1-7/(7*7)
9 авг 18, 11:06    [21635583]     Ответить | Цитировать Сообщить модератору
 Re: select с целыми числами  [new]
Konst_One
Member

Откуда:
Сообщений: 11512
на калькуляторе свою формулу сначла проверьте и почитайте про типы данных
9 авг 18, 11:09    [21635593]     Ответить | Цитировать Сообщить модератору
 Re: select с целыми числами  [new]
Asic
Member

Откуда:
Сообщений: 45
Konst_One,
а что не так с формулой?
select CAST(1-7/(7*7) as int) возвращает 1
9 авг 18, 11:17    [21635620]     Ответить | Цитировать Сообщить модератору
 Re: select с целыми числами  [new]
Ken@t
Member

Откуда: 大地
Сообщений: 3264
Asic,

никогда не вернёт 6.918367 во первых.
9 авг 18, 11:20    [21635628]     Ответить | Цитировать Сообщить модератору
 Re: select с целыми числами  [new]
Asic
Member

Откуда:
Сообщений: 45
Ken@t,
Не говорите, если не знаете
select 1.000000-7.000000/(7*7) Только мне такой вариант не подходит, т.к. вместо чисел используются поля
9 авг 18, 11:25    [21635642]     Ответить | Цитировать Сообщить модератору
 Re: select с целыми числами  [new]
aleks222
Member

Откуда:
Сообщений: 850
Asic
Ken@t,
Не говорите, если не знаете
select 1.000000-7.000000/(7*7) Только мне такой вариант не подходит, т.к. вместо чисел используются поля


select cast(1 as float) - cast(7 as float)/(7*7) 
9 авг 18, 11:27    [21635650]     Ответить | Цитировать Сообщить модератору
 Re: select с целыми числами  [new]
Asic
Member

Откуда:
Сообщений: 45
aleks222,
Спасибо!
А я иначе пробовал))
select CONVERT(float, 1-7/(7*7))
9 авг 18, 11:31    [21635661]     Ответить | Цитировать Сообщить модератору
 Re: select с целыми числами  [new]
Konst_One
Member

Откуда:
Сообщений: 11512
/(7*7) 


из-за этого у вас неправильно будет вычисляться
9 авг 18, 11:33    [21635669]     Ответить | Цитировать Сообщить модератору
 Re: select с целыми числами  [new]
Konst_One
Member

Откуда:
Сообщений: 11512
и float - это числа с плавающей точкой.
чтобы правильно считать с нужной точностью пользуйтесь decimal с указанием точности
9 авг 18, 11:36    [21635680]     Ответить | Цитировать Сообщить модератору
 Re: select с целыми числами  [new]
Asic
Member

Откуда:
Сообщений: 45
Konst_One,
Так и надо, все прально, результат не верный указал, д.б. 0.857
9 авг 18, 11:38    [21635687]     Ответить | Цитировать Сообщить модератору
 Re: select с целыми числами  [new]
AndrF
Member

Откуда:
Сообщений: 2183
select 1-7.0/(7*7)
9 авг 18, 14:56    [21636229]     Ответить | Цитировать Сообщить модератору
 Re: select с целыми числами  [new]
AndrF
Member

Откуда:
Сообщений: 2183
Konst_One
/(7*7) 


из-за этого у вас неправильно будет вычисляться


Нет. В данном случае достаточно привести к float первую семерку. Тогда уже float деленное на int даст float.

Но в идеале, если выражение может меняться, то лучше приводить все поля, участвующие в рассчете.
9 авг 18, 15:01    [21636244]     Ответить | Цитировать Сообщить модератору
 Re: select с целыми числами  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
AndrF
Konst_One
/(7*7) 


из-за этого у вас неправильно будет вычисляться


Нет. В данном случае достаточно привести к float первую семерку. Тогда уже float деленное на int даст float.

Но в идеале, если выражение может меняться, то лучше приводить все поля, участвующие в рассчете.

какой нафиг float

вот недавно расписывал почему и как

https://stackoverflow.com/questions/51442639/why-is-199-96-0-200-in-sql/51443219#51443219

ну и достаточно

select 1-1$*7/(7*7)
9 авг 18, 15:03    [21636252]     Ответить | Цитировать Сообщить модератору
 Re: select с целыми числами  [new]
L_argo
Member

Откуда:
Сообщений: 1136
ну и достаточно
select 1-1$*7/(7*7)
"Неправильный синтаксис около конструкции '$'."

а вот так работает:

select 1 - 1.0 *7/(7*7)
9 авг 18, 15:14    [21636279]     Ответить | Цитировать Сообщить модератору
 Re: select с целыми числами  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
L_argo
ну и достаточно
select 1-1$*7/(7*7)
"Неправильный синтаксис около конструкции '$'."

а вот так работает:

select 1 - 1.0 *7/(7*7)

ну детки, уж хоть немного
$1*...
9 авг 18, 15:15    [21636282]     Ответить | Цитировать Сообщить модератору
 Re: select с целыми числами  [new]
Asic
Member

Откуда:
Сообщений: 45
Зачем каждое значение преобразовывать, ведь можно только одно и результат будет таким же?

select cast(1 as float) - cast(7 as float)/(7*7)


Например:

select 1  - cast(7 as float)/(7*7)
16 авг 18, 12:14    [21644256]     Ответить | Цитировать Сообщить модератору
 Re: select с целыми числами  [new]
Asic
Member

Откуда:
Сообщений: 45
Это влияет на что-то, есть ли какие предпочтения или писать можно кому как нравиться?
16 авг 18, 12:17    [21644262]     Ответить | Цитировать Сообщить модератору
 Re: select с целыми числами  [new]
Щукина Анна
Member

Откуда:
Сообщений: 1466
Asic
Зачем каждое значение преобразовывать, ведь можно только одно и результат будет таким же?

select cast(1 as float) - cast(7 as float)/(7*7)


Например:

select 1  - cast(7 as float)/(7*7)
В случае "ведь можно только одно" и для получения "результат будет таким же" нужно четко понимать - какое именно ОДНО значение требует преобразования:

select cast(1 as float) - cast(7 as float)/(7*7) -- на всякий случай оба

select 1 - cast(7 as float)/(7*7) -- только одно

select cast(1 as float) - 7/(7*7) -- только другое одно
16 авг 18, 12:48    [21644346]     Ответить | Цитировать Сообщить модератору
 Re: select с целыми числами  [new]
Щукина Анна
Member

Откуда:
Сообщений: 1466
Asic
Это влияет на что-то, есть ли какие предпочтения или писать можно кому как нравиться?
"правилом хорошего тона" всегда было одно: яблоки нужно сравнивать с яблоками, а груши - с грушами. И лучше это делать явно, чем полагаться на неявные преобразования.
16 авг 18, 12:52    [21644354]     Ответить | Цитировать Сообщить модератору
 Re: select с целыми числами  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
Щукина Анна
Asic
Это влияет на что-то, есть ли какие предпочтения или писать можно кому как нравиться?
"правилом хорошего тона" всегда было одно: яблоки нужно сравнивать с яблоками, а груши - с грушами. И лучше это делать явно, чем полагаться на неявные преобразования.

где здесь сравнение? Речь только о результирующих типах вычисления.
16 авг 18, 12:54    [21644356]     Ответить | Цитировать Сообщить модератору
 Re: select с целыми числами  [new]
Щукина Анна
Member

Откуда:
Сообщений: 1466
TaPaK
где здесь сравнение? Речь только о результирующих типах вычисления.
"образное выражение", "метафора" - не, не слышал?

под вашей учеткой точно пишет один и тот же человек?
ибо глубина и техническая грамотность некоторых ваших ответов когнитивно диссонирует с некоторыми вашими (же ?) плоскими, пронизанными легкой наивной непосредственностью и буквальностью восприятия, высказываниями...

З.Ы.
ничего личного, просто взгляд со стороны...
16 авг 18, 17:48    [21644868]     Ответить | Цитировать Сообщить модератору
 Re: select с целыми числами  [new]
TaPaK
Member

Откуда: Kiev
Сообщений: 6794
Щукина Анна
TaPaK
где здесь сравнение? Речь только о результирующих типах вычисления.
"образное выражение", "метафора" - не, не слышал?

под вашей учеткой точно пишет один и тот же человек?
ибо глубина и техническая грамотность некоторых ваших ответов когнитивно диссонирует с некоторыми вашими (же ?) плоскими, пронизанными легкой наивной непосредственностью и буквальностью восприятия, высказываниями...

З.Ы.
ничего личного, просто взгляд со стороны...

в рамках задачи: почему так - ответ дан, что делать ответ дан, но нет вы продолжаете пихать аналогии с розовыми слониками и как их правильно делить
16 авг 18, 17:54    [21644874]     Ответить | Цитировать Сообщить модератору
 Re: select с целыми числами  [new]
Щукина Анна
Member

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

вы за ходом дискуссии принципиально не следите? или ваш браузер показывает сообщения через одно?
вопрос, на который мною был дан ответ, ещё раз перечитайте.
автор, как бы, спрашивал "о предпочтениях и общих правилах". на что ему и был дан ответ.
если у вас другие предпочтения, поделитесь. автору будет из чего выбирать...
16 авг 18, 19:34    [21644960]     Ответить | Цитировать Сообщить модератору
 Re: select с целыми числами  [new]
Asic
Member

Откуда:
Сообщений: 45
Спасибо всем за помощь в данном вопросе
17 авг 18, 09:40    [21645417]     Ответить | Цитировать Сообщить модератору
 Re: select с целыми числами  [new]
nullin
Member

Откуда: pullin
Сообщений: 139
Asic, а не думали вынести за скобки дробную часть по типу:
cast(1 as float) / (7 * 7) * ((7 * 7) - 7)

Приводить в таком случае нужно фиктивную переменную и только один раз.
И почему семь на семь а не нолллль, например, если делите на что-либо, то почему не рассчитываете на такой сценарий, сам тред конечно такой, но?
17 авг 18, 15:10    [21646066]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить