2016-03-31 15 views
1

numarandan kaldırır Hey, ben bir java dev adamlarıyım, bu yüzden normalde bunu yapmadım benimle birlikte.SQL Server önde gelen 0'ları ve tüm karakterleri

ben seçilmiş yaptığınızda aşağıda gibi gibi görünmek için bu değerleri gerek

Column 
001 - test 
012 - test 2 

gibi görünen bir tablodaki bir sütun vardır: önceden

1 
12 
... 
... 

Teşekkür

+0

Her zaman 3 haneli bir sayı? Ya da çizgi öncesi herhangi bir sayı var mı? – jarlh

+0

muhtemelen dahil 0 olabilir –

cevap

3

Önde gelen rakamları bir sayıya dönüştürmek istersiniz. Ben öneriyoruz: (int amaçlarınıza yeterli görünüyor olsa da) o büyük tam sayısal değer olduğundan

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

Ben ondalık 38 seçti.

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

ve için: Eğer hep üç basamaklı olduğunu biliyorsanız,

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

Ve:

Ayrıca başlangıç ​​sıfır atarak ve sonucu bir dize olarak bırakarak bunu yapabilirsiniz Bir dizi:

select cast(cast(left(column, 3) as int) as varchar(3)) 
İlgili konular