2016-03-31 2 views
1

Эй, я ребята из Java, поэтому я, как правило, не делаю этого, так что медведь со мной.SQL Server удаляет ведущие 0 и все символы после цифр

У меня есть столбец в таблице, которая выглядит как

Column 
001 - test 
012 - test 2 

Мне нужны эти значения, чтобы выглядеть, как показано ниже, когда я делаю выбор:

1 
12 
... 
... 

Заранее спасибо

+0

Всегда 3-значное число? Или просто любое число цифр перед тире? – jarlh

+0

это может быть четыре с включенным 0 –

ответ

3

Вы хотите преобразовать ведущие цифры в число. Я бы рекомендовал:

select cast(left(column, patindex('%[^0-9]%', column) as decimal(38)) 

Я выбрал десятичное 38, потому что это самое большое точное числовое значение (хотя int кажется достаточным для ваших целей).

Вы также можете сделать это путем удаления начальных нулей и оставляя результат в виде строки:

select stuff(left(column, patindex('%[^0-9]%', column), 
      1, patindex('%[^0]%', column) - 1, '') 

И, если вы знаете, что это всегда три цифры:

select cast(left(column, 3) as int) 

и для a строка:

select cast(cast(left(column, 3) as int) as varchar(3)) 
Смежные вопросы