Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Что за???  [new]
ГуЗы
Guest
Запрос:
select  top 1
len(SomeField),(unicode(SomeField)) , SomeField, unicode(' ')
from [dbo].[SomTable]
where SomeField = N'0'

результат:
1	48	0	32


Запрос:
select  top 1
len(SomeField),(unicode(SomeField)) , SomeField, unicode(' ')
from [dbo].[SomTable]
where SomeField = N' '

Результат:
1	48	0	32


SomeField Nvarchar(20)


Данные в таблицу грузил из xml средствами SSIS, исходное поле данных содержит пробел.

Microsoft SQL Server 2012 - 11.0.5058.0 (X64)
May 14 2014 18:34:29
Copyright (c) Microsoft Corporation
Standard Edition (64-bit) on Windows NT 6.1 <X64> (Build 7601: Service Pack 1)
26 мар 15, 14:45    [17435335]     Ответить | Цитировать Сообщить модератору
 Re: Что за???  [new]
o-o
Guest
ГуЗы,

select cast (' ' as int), UNICODE('0'), UNICODE(' ')
---
0	48	32
26 мар 15, 14:55    [17435404]     Ответить | Цитировать Сообщить модератору
 Re: Что за???  [new]
ГуЗы
Guest
o-o,

!!!!!
26 мар 15, 15:03    [17435462]     Ответить | Цитировать Сообщить модератору
 Re: Что за???  [new]
felix_ff
Member

Откуда: Moscow
Сообщений: 1440
declare @tbl table (id int identity(1,1), name nvarchar(20))
insert into @tbl (name) values (N'0_test1')
insert into @tbl (name) values (N' _test2')
insert into @tbl (name) values (N'0')
insert into @tbl (name) values (N' ')
insert into @tbl (name) values (NCHAR(48))
insert into @tbl (name) values (NCHAR(32))

select top 2 len(name) as [len], datalength(name) as [dlen], unicode(name) as [unicode], name as [name], id as [id], unicode(' ') as [uspc] from @tbl where name = N'0'
select top 2 len(name) as [len], datalength(name) as [dlen], unicode(name) as [unicode], name as [name], id as [id], unicode(' ') as [uspc] from @tbl where name = N' '


Результат:
len    dlen  unicode  name  id   uspc
1	2	48    0	    3	  32
1	2	48    0	    5	  32

0	2	32          4	  32
0	2	32          6	  32


Microsoft SQL Server 2005 - 9.00.5000.00 (X64)
Dec 10 2010 10:38:40
Copyright (c) 1988-2005 Microsoft Corporation
Enterprise Edition (64-bit) on Windows NT 6.1 (Build 7601: Service Pack 1)

Интересно это от версии или SSIS?
P.S. Чота я догнать не могу как у ТС Len(' ') возвратила 1? O_o
26 мар 15, 15:42    [17435716]     Ответить | Цитировать Сообщить модератору
 Re: Что за???  [new]
iap
Member

Откуда: Москва
Сообщений: 47000
felix_ff
P.S. Чота я догнать не могу как у ТС Len(' ') возвратила 1? O_o
Вероятно, он не запускал свои запросы, а рассуждает чисто "теоретически".
Про особенности функции LEN() просто не подозревает.
26 мар 15, 16:09    [17435914]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить