Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách hoạt động của hàm REPLICATE () trong SQL Server (T-SQL)

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.

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 |
+----------------------------------------------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách đơn giản nhất để thực hiện tự tham gia đệ quy?

  2. Việc chuyển đổi kiểu dữ liệu datetime2 thành kiểu dữ liệu datetime dẫn đến giá trị nằm ngoài phạm vi

  3. Truy vấn SQL để lấy dữ liệu trong 3 tháng qua

  4. Xóa tài khoản thư cơ sở dữ liệu khỏi hồ sơ (SSMS)

  5. Chuyển đổi ‘datetimeoffset’ thành ‘time’ trong SQL Server (Ví dụ T-SQL)