SORU
4 NİSAN 2011, PAZARTESİ


PadLeft T-SQL fonksiyonu

Aşağıdaki gibi Bir tablo var:

id
----
1
2
12
123
1234

Sıfır ile sol-pad id değerlerine ihtiyacım var:

id
----
0001
0002
0012
0123
1234

Bunu nasıl başarabilir?

CEVAP
4 NİSAN 2011, PAZARTESİ


Bu sizin için ne arıyor olabilir inanıyorum

SELECT padded_id = REPLACE(STR(id, 4), SPACE(1), '0') 

FROM tableA

ya

SELECT REPLACE(STR(id, 4), SPACE(1), '0') AS [padded_id]

FROM tableA

2 örnek üzerinde sözdizimi test etmedim. Eğer 0 - bazı verdiği gerekebilir işe yarayacağından emin değilim - ama istediğiniz çıkışı elde etmek için nasıl genel bir fikir verir.

EDİT

İlgili yorumlar listelenen adresi...

@pkr298 - Evet STR sayılar üzerinde çalışır sadece... OP alan bir KİMLİK... bu yüzden tek sayı.

@Yok ediciyi - tabii ki işe yaramaz... İlk parametre 6 karakter uzunluğunda olur. Gibi bir şey yapabilirsiniz:

SELECT REPLACE(STR(id,
(SELECT LEN(MAX(id))   4 FROM tableA)), SPACE(1), '0') AS [padded_id] FROM tableA

bu teorik olarak kale direklerinin hareket etmeliyiz... sayısı büyüdükçe, her ZAMAN çalışması gerekir.... ne olursa olsun 1 veya 123456789... eğer

Eğer öyleyse max değeri 123456... 0000123456 görür ve eğer min değeri 1 ise 0000000001 görür

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • EmperorTigerstar

    EmperorTiger

    14 EYLÜL 2009
  • The Slow Mo Guys

    The Slow Mo

    15 AĞUSTOS 2010
  • thenewboston

    thenewboston

    4 ŞUBAT 2008