2013-09-16 48 views
14

Có sự khác biệt nào giữa việc sử dụng SPACE(2) + '|' + SPACE(2) hoặc chỉ ' | ' không? Tôi biết đầu ra sẽ giống nhau nhưng tôi không chắc chắn về các khía cạnh khác ... Thực ra tôi không thể thấy điểm trong việc sử dụng hàm SPACE nếu không có sự khác biệt ...SQL - Sự khác biệt giữa SPACE (2) + '|' + SPACE (2) và ‘| ‘?

Cảm ơn!

Trả lời

16

Điểm khác biệt đầu tiên mà tôi nghĩ đến là số lượng khoảng trắng. Giả sử bạn muốn viết 20 dấu cách, một từ và 20 khoảng trắng khác:

'     abcd     ' 

Có bao nhiêu khoảng trống? Hữu ích hơn nhiều:

SPACE(20)+'abcd'+SPACE(20) 

phải không?

Có nhiều trường hợp bạn chỉnh sửa mã của ai đó tạo truy vấn SQL. Đó là nhiều hơn có thể xảy ra mà bạn xóa một không gian một nơi nào đó và không thể gỡ lỗi nó. Không có vấn đề như vậy nếu sử dụng chức năng SPACE.

+2

Chưa kể, bạn có thể thêm không gian lên đến chiều dài tối đa của một varchar bình thường trong T-SQL (8000) – penguat

+0

Để bao gồm khoảng trống trong dữ liệu Unicode, hoặc quay trở lại hơn 8000 chỗ nhân vật, sử dụng tái tạo thay vì Không gian. – Seymour

5

của nó rõ ràng hơn để xem SPACE (50) so với

50 chỗ ..

"            " 

Thats lý do của tôi.

+0

Tôi Xem những người khác đăng giống như tôi đã nói chỉ trong khoảng thời gian đó. e – Daniel

4

Không, không có sự khác biệt.

Điểm của hàm SPACE xuất hiện khi có nhiều khoảng trắng hơn (ví dụ 20) hoặc bạn muốn làm cho số lượng khoảng trống rõ ràng cho người đọc.

16

Tôi đồng ý với những người đã trả lời câu hỏi này rằng SPACE() hữu ích cho biết số lượng không gian được sử dụng hoặc để thêm số lượng lớn không gian.

Sử dụng SPACE cũng có thể đơn giản hơn nếu bạn muốn tạo tệp định dạng có chiều rộng cố định - bạn có thể sử dụng độ dài dữ liệu làm thông số, ví dụ:

SELECT 
    name + SPACE(20-LEN(name)) 
FROM 
    SomeTableWithNames 
Các vấn đề liên quan