Tạo chuỗi lớn cho dữ liệu thử nghiệm


12

Gần đây tôi đã cố gắng tạo ra một số chuỗi lớn chứa dữ liệu kiểm tra chung cho một câu hỏi ở đây . Có vẻ như tôi đã từng biết một cách để nhân một chuỗi. Tuy nhiên, tôi không còn có thể nhớ cú pháp.

Tôi đang tìm kiếm một cái gì đó như:

SELECT 'A' + ('a' * 1000) + 'ha!'

Để đến với "Aaaaaaaaaaaaaaaha!" (Tất nhiên, lâu hơn nữa, tất nhiên.)

Điều này có thể có trong T-SQL không? (Hoặc tôi đang nghĩ về một số ngôn ngữ khác?) Ngoài ra, có bất kỳ kỹ thuật nào khác để tạo ra các chuỗi lớn không?

Câu trả lời:


19

Bạn có thể sử dụng REPLICATE:

SELECT 'A' + REPLICATE('a', 1000) + 'ha!';

2
Lưu ý rằng bạn sẽ phải cung cấp một ký tự đầu vào (MAX) để tạo các chuỗi lớn hơn 8060 ký tự: CHỌN REPLICATE (CAST ('a' AS varchar (MAX)), 15000). Đảm bảo truyền nó tới nvarchar (MAX) nếu cần.
Đánh dấu S. Rasmussen

1
Cảm ơn Mark. Cũng có những vấn đề tiềm ẩn khác REPLICATE, tùy thuộc vào cách Richard sẽ sử dụng nó (ví dụ: nó có thể hoạt động khác nhau khi sử dụng độ dài của varchar so với char), đó là lý do tại sao tôi liên kết nóng REPLICATEtừ khóa để trỏ đến tài liệu, thay vì cố gắng lấy lại tất cả các vấn đề tiềm năng từ tài liệu ở đây.
Aaron Bertrand
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.