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

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

У меня есть поле типа varchar(), данные в нем представлены в таком виде:
field_1
12 000
11 000
9 000
4 000
....

Везде проставлен пробел. Мне необходимо найти соответсвие с этим поелм в другой таблице, где данные в аналогичном поле представлены так:
field_2
12000
11000
9000
4000
....

Делаю Replace (field_1.' ','') - никаких изменений. В чем я ошибаюсь?
2 фев 12, 16:23    [12020527]     Ответить | Цитировать Сообщить модератору
 Re: Replace пробелов  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
danton, полностью скрипт покажите
2 фев 12, 16:26    [12020558]     Ответить | Цитировать Сообщить модератору
 Re: Replace пробелов  [new]
не пробел?
Guest
например, у вас там не пробелы...


select ascii(substring(field1, 3, 1))

для записи '12 000'
2 фев 12, 16:28    [12020594]     Ответить | Цитировать Сообщить модератору
 Re: Replace пробелов  [new]
ZOOKABAKODER
Member

Откуда:
Сообщений: 178
danton
Делаю Replace (field_1.' ','') - никаких изменений. В чем я ошибаюсь?


Replace (field_1.' ','')
^
селект репласе(фиелд_1, ' ', '') фром таблица
что даёт?

версия сервака, collation поля?
2 фев 12, 16:30    [12020611]     Ответить | Цитировать Сообщить модератору
 Re: Replace пробелов  [new]
danton
Member

Откуда:
Сообщений: 170
не пробел?,

Вот у меня тоже возник вопрос, что же это тогда?
2 фев 12, 16:45    [12020807]     Ответить | Цитировать Сообщить модератору
 Re: Replace пробелов  [new]
не пробел?
Guest
danton
не пробел?,

Вот у меня тоже возник вопрос, что же это тогда?

вы скрипт предложенный запустили, его результат увидели, нам показали?
2 фев 12, 16:46    [12020830]     Ответить | Цитировать Сообщить модератору
 Re: Replace пробелов  [new]
danton
Member

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


полностью скрипт банален

update table_1 t
set t.field_1 = Replace (t.field_1,' ','')
2 фев 12, 16:46    [12020834]     Ответить | Цитировать Сообщить модератору
 Re: Replace пробелов  [new]
danton
Member

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

Ничего абсолютно, все без изменений, догадываюсь, что максимум,если есть конечные пробелы поубивает.

MS SQL Server R2
Collation: Cyrillic_General_CI_AS
2 фев 12, 16:49    [12020863]     Ответить | Цитировать Сообщить модератору
 Re: Replace пробелов  [new]
danton
Member

Откуда:
Сообщений: 170
не пробел?,

да есть

field_1 Result
9 000 48
9 001 48
9 001 48
9 002 48
9 002 48
20 009 160
20 011 160
20 013 160
2 фев 12, 16:53    [12020916]     Ответить | Цитировать Сообщить модератору
 Re: Replace пробелов  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
danton
kDnZP,


полностью скрипт банален

update table_1 t
set t.field_1 = Replace (t.field_1,' ','')

Здесь неправильный синтаксис. Он вообще не должен работать.
2 фев 12, 16:54    [12020930]     Ответить | Цитировать Сообщить модератору
 Re: Replace пробелов  [new]
Glory
Member

Откуда:
Сообщений: 104751
danton
не пробел?,

Символ "пробел" определяют не визуально, а через его код
ASCII код обычного пробела - 32
2 фев 12, 16:55    [12020939]     Ответить | Цитировать Сообщить модератору
 Re: Replace пробелов  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
danton
не пробел?,

да есть

field_1 Result
9 000 48
9 001 48
9 001 48
9 002 48
9 002 48
20 009 160
20 011 160
20 013 160
160 - это "неразрывный пробел", 48 - это цифра 0 (зачем её-то заменять???)
REPLACE(field_1.CHAR(160),'')
2 фев 12, 16:56    [12020947]     Ответить | Цитировать Сообщить модератору
 Re: Replace пробелов  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
danton,

UPDATE  table_1
SET     field_1 = REPLACE(field_1, CHAR(160), '')
2 фев 12, 16:57    [12020952]     Ответить | Цитировать Сообщить модератору
 Re: Replace пробелов  [new]
danton
Member

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

вообщем код его 160, явно не пробел)
2 фев 12, 16:57    [12020961]     Ответить | Цитировать Сообщить модератору
 Re: Replace пробелов  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
iap
160 - это "неразрывный пробел", 48 - это цифра 0 (зачем её-то заменять???)
REPLACE(field_1.CHAR(160),'')
Точка вкралась вместо запятой!
REPLACE(field_1,CHAR(160),'')
2 фев 12, 16:58    [12020963]     Ответить | Цитировать Сообщить модератору
 Re: Replace пробелов  [new]
danton
Member

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

я понял уже спасибо большое, ума прибавилось!
2 фев 12, 16:58    [12020972]     Ответить | Цитировать Сообщить модератору
 Re: Replace пробелов  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
danton
danton,

вообщем код его 160, явно не пробел)
А я говорю пробел!
См. MS Word - "Вставка"-"Символ"-"Специальные знаки"-"Неразравный пробел" (Ctrl+Shift+Пробел)
2 фев 12, 17:00    [12020991]     Ответить | Цитировать Сообщить модератору
 Re: Replace пробелов  [new]
danton
Member

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

все правильно, Вы меня неправильно поняли
2 фев 12, 17:02    [12021026]     Ответить | Цитировать Сообщить модератору
 Re: Replace пробелов  [new]
danton
Member

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

другой вопрос, как оказался неразрывный пробел, вместо обычного.
2 фев 12, 17:03    [12021036]     Ответить | Цитировать Сообщить модератору
 Re: Replace пробелов  [new]
не пробел?
Guest
danton
danton,

другой вопрос, как оказался неразрывный пробел, вместо обычного.

надо спросить у того, кто эти данные туда записал...
2 фев 12, 17:13    [12021143]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить