Trong SQL Server, T-SQL REPLICATE()
hàm lặp lại một giá trị chuỗi một số lần được chỉ định và trả về kết quả.
Hàm chấp nhận hai đối số; chuỗi đầu vào và số lần nó sẽ được lặp lại.
Cú pháp
Cú pháp như sau:
REPLICATE ( string_expression ,integer_expression )
Trong đó string_expression là chuỗi đầu vào. Đây có thể là dữ liệu ký tự hoặc dữ liệu nhị phân.
Và integer_expression là một số nguyên chỉ định số lần lặp lại chuỗi đầu vào. Điều này có thể là bất kỳ loại số nguyên nào, bao gồm cả bigint .
Lưu ý rằng nếu đối số đầu tiên không thuộc loại varchar (max) hoặc nvarchar (tối đa) , hàm cắt bớt giá trị trả về ở mức 8.000 byte. Để trả về giá trị lớn hơn 8.000 byte, đối số đầu tiên phải được truyền rõ ràng sang kiểu dữ liệu giá trị lớn thích hợp.
Ví dụ 1 - Cách sử dụng cơ bản
Dưới đây là một ví dụ về cách nó hoạt động:
SELECT REPLICATE('Dog', 3) AS Result;
Kết quả:
+-----------+ | Result | |-----------| | DogDogDog | +-----------+
Ví dụ 2 - Thêm dấu cách
Chúng ta cũng có thể thêm khoảng trắng vào ví dụ trước:
SELECT REPLICATE('Dog', 3) AS Result;
Kết quả:
+--------------+ | Result | |--------------| | Dog Dog Dog | +--------------+
Mặc dù lưu ý rằng điều này cũng sẽ thêm một khoảng trắng ở cuối chuỗi.
Chúng tôi có thể sử dụng TRIM()
chức năng để khắc phục điều này:
SELECT TRIM(REPLICATE('Dog ', 3)) AS Result;
Kết quả:
+-------------+ | Result | |-------------| | Dog Dog Dog | +-------------+
Có thể ví dụ sau sẽ làm cho điều này rõ ràng hơn:
SELECT REPLICATE('Dog ', 3) + '.' AS 'Untrimmed', TRIM(REPLICATE('Dog ', 3)) + '.' AS 'Trimmed';
Kết quả:
+---------------+--------------+ | Untrimmed | Trimmed | |---------------+--------------| | Dog Dog Dog . | Dog Dog Dog. | +---------------+--------------+
Ví dụ 3 - Số lần Sao chép Không hợp lệ
Nếu đối số thứ hai là giá trị âm, NULL
được trả lại:
SELECT REPLICATE('Dog', -3) AS Result;
Kết quả:
+----------+ | Result | |----------| | NULL | +----------+
Ví dụ 4 - Ví dụ về Cơ sở dữ liệu
Dưới đây là một ví dụ về sao chép dữ liệu từ cơ sở dữ liệu:
SELECT TOP(3) TRIM(REPLICATE(ArtistName + ' ', 3)) AS Result FROM Artists;
Kết quả:
+----------------------------------------------------+ | Result | |----------------------------------------------------| | Iron Maiden Iron Maiden Iron Maiden | | AC/DC AC/DC AC/DC | | Allan Holdsworth Allan Holdsworth Allan Holdsworth | +----------------------------------------------------+