Bazen sayıları metinle karışık olarak saklamak zorunda kalmazsınız. Uygulamalarımızdan birinde, e-ticaret sitemiz için kullandığımız web sitesi barındırıcısı, listelerden dinamik olarak filtreler çıkarır. Görüntülenen metin dışında herhangi bir alana göre sıralama seçeneği yoktur. Filtrelerin 2 "ila 8" 9 "ila 12" 13 "ila 15" gibi şeyler söyleyen bir listeden oluşturulmasını istediğimizde, 13-2-9'u ne zaman olacağı gibi değil, 2-9-13'ü sıralaması gerekti sayısal değerleri okumak. Bu yüzden, SQL Server Replicate işlevini en uzun sayının uzunluğuyla birlikte, daha kısa sayıları baştaki bir boşlukla doldurmak için kullandım. Şimdi 20, 3'ten sonra sıralanır ve bu böyle devam eder.
Öğe türü ve sınıfı için bana minimum ve maksimum uzunlukları, genişlikleri vb. Veren bir görünümle çalışıyordum ve işte metni nasıl yaptığıma dair bir örnek. (LB n Düşük ve LB n Yüksek, 5 uzunluk parantezinin Düşük ve Yüksek sonlarıdır.)
REPLICATE(' ', LEN(LB5Low) - LEN(LB1High)) + CONVERT(NVARCHAR(4), LB1High) + '" and Under' AS L1Text,
REPLICATE(' ', LEN(LB5Low) - LEN(LB2Low)) + CONVERT(NVARCHAR(4), LB2Low) + '" to ' + CONVERT(NVARCHAR(4), LB2High) + '"' AS L2Text,
REPLICATE(' ', LEN(LB5Low) - LEN(LB3Low)) + CONVERT(NVARCHAR(4), LB3Low) + '" to ' + CONVERT(NVARCHAR(4), LB3High) + '"' AS L3Text,
REPLICATE(' ', LEN(LB5Low) - LEN(LB4Low)) + CONVERT(NVARCHAR(4), LB4Low) + '" to ' + CONVERT(NVARCHAR(4), LB4High) + '"' AS L4Text,
CONVERT(NVARCHAR(4), LB5Low) + '" and Over' AS L5Text