Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Как преобразовать nvarchar (типа: б/н 1258) в int (типа: 1258).
|
|||
|---|---|---|---|
|
#18+
Как преобразовать nvarchar (типа б/н 1258 ) в int (типа 1258 ). Чайник. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2001, 12:10 |
|
||
|
Как преобразовать nvarchar (типа: б/н 1258) в int (типа: 1258).
|
|||
|---|---|---|---|
|
#18+
declare @t varchar(10) select @t='б/н 1258' select CONVERT(int, (CASE WHEN (SUBSTRING(@t,1,1) LIKE '[0-9]') THEN SUBSTRING(@t,1,1) END) +(CASE WHEN (SUBSTRING(@t,2,1) LIKE '[0-9]') THEN SUBSTRING(@t,2,1) END) +(CASE WHEN (SUBSTRING(@t,3,1) LIKE '[0-9]') THEN SUBSTRING(@t,3,1) END) +(CASE WHEN (SUBSTRING(@t,4,1) LIKE '[0-9]') THEN SUBSTRING(@t,4,1) END) +(CASE WHEN (SUBSTRING(@t,5,1) LIKE '[0-9]') THEN SUBSTRING(@t,5,1) END) +(CASE WHEN (SUBSTRING(@t,6,1) LIKE '[0-9]') THEN SUBSTRING(@t,6,1) END) +(CASE WHEN (SUBSTRING(@t,7,1) LIKE '[0-9]') THEN SUBSTRING(@t,7,1) END) +(CASE WHEN (SUBSTRING(@t,8,1) LIKE '[0-9]') THEN SUBSTRING(@t,8,1) END) +(CASE WHEN (SUBSTRING(@t,9,1) LIKE '[0-9]') THEN SUBSTRING(@t,9,1) END) +(CASE WHEN (SUBSTRING(@t,10,1) LIKE '[0-9]') THEN SUBSTRING(@t,10,1) END) ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2001, 12:36 |
|
||
|
Как преобразовать nvarchar (типа: б/н 1258) в int (типа: 1258).
|
|||
|---|---|---|---|
|
#18+
Спасибо. Мне такой же вариант пришел на ум, но думал, что профи предложат что-то другое, что-нибудь покороче. Все равно спасибо, значит шел по правильному пути. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2001, 12:55 |
|
||
|
Как преобразовать nvarchar (типа: б/н 1258) в int (типа: 1258).
|
|||
|---|---|---|---|
|
#18+
create proc ConvertToMyType @t varchar(10), @t1 varchar(10) out as begin declare @i int set @i = 1 set @t1 = '' while @i <= len(@t) begin if substring(@t, @i, 1) like '[0-9]' set @t1 = @t1 + substring(@t, @i, 1) set @i = @i + 1 end end Или оформить в виде функции - как больше нравится... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2001, 13:43 |
|
||
|
Как преобразовать nvarchar (типа: б/н 1258) в int (типа: 1258).
|
|||
|---|---|---|---|
|
#18+
Можно еще так declare @t varchar(10) select @t='б/н 12589' select case when @t not like '%[0-9]%' then 0 else convert(int,substring(@t, patindex('%[0-9]%',@t), datalength(@t)-patindex('%[0-9]%',reverse(@t))-patindex('%[0-9]%',@t)+2))end ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.07.2001, 15:57 |
|
||
|
|

start [/forum/topic.php?fid=46&fpage=3563&tid=1826245]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
27ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 252ms |
| total: | 351ms |

| 0 / 0 |
