Size: a a a

SqlCom.ru - Стиль жизни SQL

2020 November 11

G

Gopneg in SqlCom.ru - Стиль жизни SQL
но придется тебе страдать %))
источник

И

Илья in SqlCom.ru - Стиль жизни SQL
дааа
источник

И

Илья in SqlCom.ru - Стиль жизни SQL
у меня бд накатывается скриптом
источник

G

Gopneg in SqlCom.ru - Стиль жизни SQL
ну если он у тебя уже есть, какие проблемы?
источник

И

Илья in SqlCom.ru - Стиль жизни SQL
Gopneg
ну если он у тебя уже есть, какие проблемы?
тут скрины блин заливать нельзя
источник

И

Илья in SqlCom.ru - Стиль жизни SQL
источник

G

Gopneg in SqlCom.ru - Стиль жизни SQL
Илья
тут скрины блин заливать нельзя
/unrestrict@Gopnegbot
источник

G

GopoBot in SqlCom.ru - Стиль жизни SQL
Сняты все ограничения: Илья
источник

G

Gopneg in SqlCom.ru - Стиль жизни SQL
все по красоте, но я тебе и так верил %)
источник

И

Илья in SqlCom.ru - Стиль жизни SQL
)))
источник

И

Илья in SqlCom.ru - Стиль жизни SQL
латиницу отдаёт))
источник

И

Илья in SqlCom.ru - Стиль жизни SQL
задача блин...
источник

И

Илья in SqlCom.ru - Стиль жизни SQL
GopoBot
Сняты все ограничения: Илья
спасибо тебе дорогой друг, буду читать) изи в этот раз не получится ) самый противный сервер Майкрософтовский))
источник

И

Илья in SqlCom.ru - Стиль жизни SQL
со всеми я договорился, кроме него
источник

k

karb0f0s in SqlCom.ru - Стиль жизни SQL
потому что для текста нужно использовать nvarchar, и всё. и utf как таковой не нужен. колейшен базы определяет порядок сортировки, а не формат хранения
источник

MC

Max Chistyakov in SqlCom.ru - Стиль жизни SQL
Gopneg
ошибки округления могут копиться
Кстати, а почему так ошибка округления не воспроизводится?
set nocount on;
create table #numbers (id int identity (1,1) primary key, val1 float not null, val2 float);

declare @val1 float, @val2 float;

while (1=1)
begin
 select @val1 = RAND(), @val2 = null;
 insert into #numbers(val1)
 values (@val1);

 set @val2 = @val1;

 update #numbers
 set val2= @val2
 where id = SCOPE_IDENTITY();

 if SCOPE_IDENTITY()% 1000 = 0
   print ('SCOPE_IDENTITY: ' + cast(SCOPE_IDENTITY() as char(8)))

 if SCOPE_IDENTITY() > 1e7
   break;
end

select
count(id) as total_qty
, count(case when val1 = val2 then 1 end ) as equals_qty
, count(case when val1 <> val2 then 1 end ) as not_equals_qty
from #numbers

--select * from #numbers;
источник

G

Gopneg in SqlCom.ru - Стиль жизни SQL
Max Chistyakov
Кстати, а почему так ошибка округления не воспроизводится?
set nocount on;
create table #numbers (id int identity (1,1) primary key, val1 float not null, val2 float);

declare @val1 float, @val2 float;

while (1=1)
begin
 select @val1 = RAND(), @val2 = null;
 insert into #numbers(val1)
 values (@val1);

 set @val2 = @val1;

 update #numbers
 set val2= @val2
 where id = SCOPE_IDENTITY();

 if SCOPE_IDENTITY()% 1000 = 0
   print ('SCOPE_IDENTITY: ' + cast(SCOPE_IDENTITY() as char(8)))

 if SCOPE_IDENTITY() > 1e7
   break;
end

select
count(id) as total_qty
, count(case when val1 = val2 then 1 end ) as equals_qty
, count(case when val1 <> val2 then 1 end ) as not_equals_qty
from #numbers

--select * from #numbers;
чота я не понял чо ты тут пытался увидеть
источник

k

karb0f0s in SqlCom.ru - Стиль жизни SQL
так ведь здесь нет операций над числами с плавающей точкой - есть перенос значения в соседний столбик. проверять нужно через 1.0+2.0<>3.0
источник

MC

Max Chistyakov in SqlCom.ru - Стиль жизни SQL
берём одно значение с плавающей запятой, записываем его в два разных поля таблицы. Сравниваем,в надежде что в милионных-миллиардных долях оно будет различаться. И так - 10 млн раз, чтобы хоть где-то оно отличалось
источник

k

karb0f0s in SqlCom.ru - Стиль жизни SQL
а если посмотреть на формат хранения чисел с плавающей точкой и подумать, то можно понять, что сама по себе точность при копировании не может потеряться
источник