บางครั้งคุณก็ไม่มีทางเลือกว่าจะต้องเก็บตัวเลขผสมกับข้อความ หนึ่งในแอปพลิเคชันของเราโฮสต์เว็บไซต์ที่เราใช้สำหรับไซต์อีคอมเมิร์ซของเราจะสร้างตัวกรองออกจากรายการแบบไดนามิก ไม่มีตัวเลือกในการจัดเรียงตามเขตข้อมูลใด ๆ นอกจากข้อความที่แสดง เมื่อเราต้องการตัวกรองที่สร้างขึ้นจากรายการที่กล่าวถึงสิ่งต่างๆเช่น 2 "ถึง 8" 9 "ถึง 12" 13 "ถึง 15" เป็นต้นเราต้องการให้ตัวกรองนี้เรียงลำดับ 2-9-13 ไม่ใช่ 13-2-9 ตามที่จะทำเมื่อ การอ่านค่าตัวเลข ดังนั้นฉันจึงใช้ฟังก์ชัน SQL Server Replicate พร้อมกับความยาวของตัวเลขที่ยาวที่สุดเพื่อรองตัวเลขที่สั้นกว่าด้วยช่องว่างนำหน้า ตอนนี้ 20 เรียงลำดับหลัง 3 ไปเรื่อย ๆ
ฉันกำลังทำงานกับมุมมองที่ให้ความยาวต่ำสุดและสูงสุดความกว้าง ฯลฯ สำหรับประเภทรายการและคลาสและนี่คือตัวอย่างของวิธีที่ฉันทำข้อความ (LB nต่ำและ LB nสูงคือปลายต่ำและสูงของวงเล็บ 5 ตัว)
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