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

Cách hàm CHAR () hoạt động trong SQL Server (T-SQL)

Trong SQL Server, T-SQL CHAR() hàm chuyển đổi một int Mã ASCII thành một giá trị ký tự. Nói cách khác, bạn chuyển vào một số nguyên và hàm sẽ diễn giải nó dưới dạng giá trị mã cho một ký tự chuỗi và trả về ký tự chuỗi tương ứng.

Cú pháp

Cú pháp như sau:

CHAR ( integer_expression )

Trong đó integer_expression là một số nguyên từ 0 đến 255.

Nếu bạn chỉ định một số nguyên bên ngoài phạm vi này, kết quả là NULL . Điều này cũng đúng nếu bạn cung cấp một số nguyên chỉ biểu thị byte đầu tiên của một ký tự byte kép.

Ví dụ 1 - Cách sử dụng cơ bản

Dưới đây là một ví dụ để chứng minh cách sử dụng cơ bản:

SELECT CHAR(67) AS 'Result';

Kết quả:

+----------+
| Result   |
|----------|
| C        |
+----------+

Vì vậy, nếu chúng ta thay đổi số nguyên, chúng ta sẽ nhận được một ký tự khác:

SELECT CHAR(255) AS 'Result';

Kết quả:

+----------+
| Result   |
|----------|
| ÿ        |
+----------+

Ví dụ 2 - Nhiều số nguyên

Hàm này không hỗ trợ nhiều số nguyên làm đối số. Nếu bạn cung cấp nhiều số nguyên, bạn sẽ gặp lỗi.

Đây là một ví dụ:

SELECT CHAR(67, 255) AS 'Result';

Kết quả:

The char function requires 1 argument(s).

Lưu ý rằng điều này trái ngược với CHAR() của MySQL (cho phép bạn cung cấp nhiều số nguyên).

Ví dụ 3 - Số nguyên ngoài phạm vi

Hàm này cũng không hỗ trợ các số nguyên nằm ngoài phạm vi từ 1 đến 255. Nếu đối số của bạn nằm ngoài phạm vi này, kết quả là NULL .

Đây là một ví dụ:

SELECT CHAR(256) AS 'Result';

Kết quả:

+----------+
| Result   |
|----------|
| NULL     |
+----------+

Điều này một lần nữa trái ngược với CHAR() của MySQL hàm chấp nhận các số nguyên lớn hơn 255 (trong trường hợp đó, chúng được tự động chuyển đổi thành nhiều byte kết quả).

Ví dụ 4 - Chèn các ký tự điều khiển

Dưới đây là một ví dụ về việc sử dụng CHAR(13) để in các ký tự tiếp theo trên một dòng mới:

SELECT 'Homer' + CHAR(13) + '[email protected]' AS 'Name/Email';

Kết quả:

+--------------+
| Name/Email   |
|--------------|
| Homer
[email protected]              |
+--------------+

Đây là giao diện nếu chúng tôi xóa CHAR(13) :

SELECT 'Homer' AS 'Name', '[email protected]' AS 'Email';

Kết quả:

+--------+-----------------------+
| Name   | Email                 |
|--------+-----------------------|
| Homer  | [email protected] |
+--------+-----------------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL - Việc chuyển đổi kiểu dữ liệu varchar thành kiểu dữ liệu datetime dẫn đến giá trị nằm ngoài phạm vi

  2. GETUTCDATE () có trả về cùng một giá trị nếu được sử dụng hai lần trong cùng một câu lệnh không?

  3. DTU trong cơ sở dữ liệu Azure SQL là gì và cách tìm ra chúng ta cần bao nhiêu

  4. Làm cách nào để khóa bảng khi đọc, sử dụng Entity Framework?

  5. Đảm bảo, không phá vỡ, hiệu suất SQL Server