2008-12-17 10 views
5

Bir tabloda iki alanım var. Biri BTA, BEA, REA gibi değerleri içerir. Diğer, 1,2,63,103 gibi değerleri içerir.SQL'de iki dizeyi birleştirmek ve 0'larla bir dizeyi nasıl doldurulur?

2 alanı birleştirerek BTA001, BTA002, BTA063, BTA103 gibi görünmelerini istiyorum. sayılar uzunluğunda 3 karakter değilse, ben numarasının sol bazı 0 en ped istiyorum nasıl

Bildirim bunu hakkında gitmek nasıl 3.

için eşit hale getirmek? Tablodaki alanlar BTA, BEA karşılık Tipi denir ve REA ve İd, 2, 1 olarak 63 tekabül alandır ve 103.

cevap

9
select Type + right('00' + cast(id as varchar(10)), 3) 
from ... 

Düzenleme: kimliği boş ve eğer göstermek için bir sıfır istiyorum yapabilirsiniz:

select Type + right('00' + cast(isnull(id, 0) as varchar(10)), 3) 
from ... 
+0

Cevabınız ve Öğreniminiz arasındaki temel fark nedir? – Xaisoft

+0

Çok az. Her zaman Id sütunundan tek haneli bir sayı alacağınız varsayımını yaptım, ki bu durumda sadece iki sıfır eklemeniz gerekir. CAST ANSI standardıdır (bu nedenle taşınabilir), CONVERT ise SQL Server'a özgüdür, ancak size daha esnek dönüşüm seçenekleri sunar. – RedFilter

+0

Kimlik sütunu null içerebilir? – Xaisoft

1

, 3)

olarak t1

den C1 + sağ (('000' + dökme (C2 nvarchar (10)) seçmek
1

FIELD1 + RI ürününü seçin GHT ('000' + CONVERT (VARCHAR, FIELD2), 3)

+0

numaralı makalede bunları hariç tutmalısınız. Uygulamanızla OrbMan arasındaki fark nedir? – Xaisoft

İlgili konular