Đôi khi bạn không có lựa chọn nào khác về việc phải lưu trữ các số trộn lẫn với văn bản. Trong một trong các ứng dụng của chúng tôi, máy chủ lưu trữ trang web mà chúng tôi sử dụng cho trang thương mại điện tử của mình tạo bộ lọc động ra khỏi danh sách. Không có tùy chọn để sắp xếp theo bất kỳ trường nào ngoài văn bản được hiển thị. Khi chúng tôi muốn các bộ lọc được xây dựng dựa trên danh sách cho biết những thứ như 2 "đến 8" 9 "đến 12" 13 "đến 15", v.v., chúng tôi cần nó sắp xếp 2-9-13, không phải 13-2-9 như khi đọc các giá trị số. Vì vậy, tôi đã sử dụng hàm SQL Server Replicate cùng với độ dài của số dài nhất để đệm bất kỳ số nào ngắn hơn bằng khoảng trắng ở đầu. Bây giờ 20 được sắp xếp sau 3, v.v.
Tôi đang làm việc với một dạng xem cung cấp cho tôi chiều dài, chiều rộng, v.v. tối thiểu và tối đa cho loại mục và lớp và đây là một ví dụ về cách tôi thực hiện văn bản. (LB n Thấp và LB n Cao là giá trị cuối Thấp và Cao của 5 dấu ngoặc nhọn.)
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