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

Откуда: Київ
Сообщений: 10428
вот, например, юзер ввёл перевод строки во второй записи, как его убрать?

select string, (cast string as binary) from t

plumbum	0x70006C0075006D00620075006D0000000000000000000000000000000000
  pearl	0x0D000A0070006500610072006C0000000000000000000000000000000000
12 мар 12, 14:09    [12231524]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать непечатные символы из строки?  [new]
iljy
Member

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

replace?
12 мар 12, 14:14    [12231581]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать непечатные символы из строки?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
iljy
Winnipuh,

replace?


но как их указать?
12 мар 12, 14:17    [12231619]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать непечатные символы из строки?  [new]
kDnZP
Member [заблокирован]

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

SELECT CHAR(13)+CHAR(10)
12 мар 12, 14:18    [12231630]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать непечатные символы из строки?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
kDnZP
Winnipuh,

SELECT CHAR(13)+CHAR(10)


а если другие будут?

Народ чудит вот так:

CREATE TABLE STRSTORE(COMMENT VARCHAR(2000))
    
   
 INSERT INTO STRSTORE(COMMENT) VALUES
  ('1.We^lcom&<e> to Sql{Journey}.&'),
  ('2=http://sqljourney.wordpress.com/'),
  ('3#[S$tring] &Cle<@anUp'),
  ('4-We* are'' do+ne~')
 

--Remove non-alphanumeric characters from the column.

   WHILE @@ROWCOUNT > 1
       UPDATE STRSTORE
       SET COMMENT = REPLACE(COMMENT, SUBSTRING(COMMENT, PATINDEX('%[^a-zA-Z0-9 ]%', COMMENT), 1), '')
        WHERE PATINDEX('%[^a-zA-Z0-9 ]%', COMMENT) <> 0
     
     
   SELECT * FROM STRSTORE
 


но как-то не красиво... а нужно еще русские буквы добавить, а если немецкие? или чего хуже китайские будут?
12 мар 12, 14:26    [12231715]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать непечатные символы из строки?  [new]
Glory
Member

Откуда:
Сообщений: 104751
Winnipuh
а если другие будут?

Ну так перечислите все
12 мар 12, 14:33    [12231810]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать непечатные символы из строки?  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
Winnipuh, что-то мне кажется вы этот вопрос несколько месяцев назад уже задавали...
12 мар 12, 14:36    [12231839]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать непечатные символы из строки?  [new]
iljy
Member

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

можно примерно так:
declare @t table(COMMENT VARCHAR(2000))
    
   
 INSERT INTO @t(COMMENT) VALUES
  ('1.We^lcom&<e> to Sql{Journey}.&'),
  ('2=http://sqljourney.wordpress.com/'),
  ('3#[S$tring] &Cle<@anUp'),
  ('4-We* are'' do+ne~')
  
declare @CharsToExclude varchar(8000) = '^&<>{}.:/#[$]@*''+~'

select COMMENT, s.value('.', 'varchar(2000)') s
from @t cross apply(
	select SUBSTRING(COMMENT, number, 1)
	from master..spt_values 
	where type = 'P' and number between 1 and LEN(COMMENT)
		and CHARINDEX(SUBSTRING(COMMENT, number, 1), @CharsToExclude) = 0
	order by number
	for xml path(''), type
)t(s)
12 мар 12, 14:37    [12231849]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать непечатные символы из строки?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
kDnZP
Winnipuh, что-то мне кажется вы этот вопрос несколько месяцев назад уже задавали...


а я думаю где видел уже этот вопрос... но нету красивого решения....
12 мар 12, 15:27    [12232342]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать непечатные символы из строки?  [new]
kDnZP
Member [заблокирован]

Откуда: ★[msg=16399436]★[msg=20850760]
Сообщений: 11289
Winnipuh, красота штука весьма абстрактная. Но то что частное решение практически всегда быстрее общего - достоверный факт. Перфекционизм - зло. Нужно знать момент, когда пора остановиться.
12 мар 12, 15:29    [12232366]     Ответить | Цитировать Сообщить модератору
 Re: Как убрать непечатные символы из строки?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10428
kDnZP
Winnipuh, красота штука весьма абстрактная. Но то что частное решение практически всегда быстрее общего - достоверный факт. Перфекционизм - зло. Нужно знать момент, когда пора остановиться.


согласен, не спасет красота мир ;-)
12 мар 12, 16:04    [12232806]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить