powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / string
7 сообщений из 7, страница 1 из 1
string
    #32013555
nikita
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pomogite pls !

y menia est" string iz 11 simbolov : ona moshet celikom coctoiat" iz zifr( '12345678912') a mogyt vctrechatcia i simvoli ('12345st6789')
ect' li cposob opredelit" ect" li v nei cimboli ili net ?
mne nado zameniat" cimboli na cifri

cpacibo zaranee
...
Рейтинг: 0 / 0
string
    #32013559
Фотография cvasil
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что нибудь вроде такого:
SET NOCOUNT ON
DECLARE @position int, @string char(15), @flag int
SET @position = 1
set @flag = 0
SET @string = '12345st6789'
WHILE @position <= LEN(@string)
BEGIN
if(ASCII(SUBSTRING(@string, @position, 1)) not between 48 and 57 )
BEGIN
set @flag = 1
BREAK
END
SET @position = @position + 1
END
select @flag
SET NOCOUNT OFF
GO
...
Рейтинг: 0 / 0
string
    #32013572
GreenSunrise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
select IsNumeric(123) - return 1

select IsNumeric('123456') - return 1
select IsNumeric('123sd46') - return 0
...
Рейтинг: 0 / 0
string
    #32013573
Фотография SergSuper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
можно еще так(допустим не должно быть минуса, точки, буквы Е, только цифры):

declare @t table (s varchar(20))
insert @t select '12345678912' union select '12345st6789'

select case when s like '%[^0-9]%' then 'est' else 'net' end, s from @t
...
Рейтинг: 0 / 0
string
    #32013574
Alexander+Stepanov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну, если надо только лишь определить, есть ли такие символы, то можно поступить следующим образом:

DECLARE @S varchar(100)
Set @s='293874328'
If patindex('%[^1234567890]%',@s)>0
print('Есть не цифры')
ELSE
print('Встретились только цифры')
Set @s='293a874328'
If patindex('%[^1234567890]%',@s)>0
print('Есть не цифры')
ELSE
print('Встретились только цифры')

Ну, а для замены следует воспользоваться например таким скриптом (он заменит не цифры на нули):

DECLARE @S varchar(100),@I int
Set @s='A293C8743K28'
Set @I=patindex('%[^1234567890]%',@s)
WHILE @I>0
BEGIN
Set @s=STUFF(@s,@I,1,'0')
Set @I=patindex('%[^1234567890]%',@s)
END
Select @S

С уважением,
Александр Степанов
a_stepanov_2000@yahoo.com
...
Рейтинг: 0 / 0
string
    #32013620
nikita
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
bol"shoe spacibo !
...
Рейтинг: 0 / 0
string
    #32013633
maximF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Небольшое улучшение: вместо patindex('%[^1234567890]%',@s)
можно писать patindex('%[^0-9]%',@s).
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / string
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]