2010-07-27 21 views
5

Bỏ qua phiên bản, các phương pháp hay nhất để định dạng mã SQL là gì?Ảnh hưởng của kiểu/định dạng trên SQL

Tôi thích cách này (phương pháp A):

select col from a inner join b on a.id = b.id inner join c on b.id = c.id 

một đồng nghiệp thích khác (phương pháp B):

select col from a inner join (b inner join c on b.id=c.id) on a.id = b.id 

Tôi muốn biết nếu có bất kỳ sự khác biệt - các truy vấn trình tối ưu hóa dường như tạo ra cùng một kế hoạch thực hiện cho cả hai. Vì vậy, có lẽ nó chỉ là dễ đọc?

Đây là lần đầu tiên tôi thấy SQL được viết bằng phương thức B, có ai khác viết SQL như thế này không? Cá nhân tôi thấy rất khó đọc phương pháp B.

EDIT: Xin lưu ý mã nằm trên một dòng và trong trường hợp trên để làm cho cả hai có thể so sánh được với mục đích của câu hỏi này.

+1

Đã có đủ câu trả lời cho biết giống nhau (Phương pháp A thường phổ biến hơn và dễ hiểu hơn), nhưng thêm câu hỏi này trên SQLServerCentral.com minh họa cách thức "B" có thể dẫn đến "stumpers" thực: http : //www.sqlservercentral.com/questions/T-SQL/77296/ 65% người (thường là các chuyên gia SQL) trả lời câu hỏi này đã sai. – Tao

Trả lời

1

Tôi nghĩ A dễ đọc hơn và hầu hết mã mẫu ở đó đều sử dụng kiểu đó. Cả hai phân tích cùng một sản phẩm và cùng một kế hoạch truy vấn, do đó, như xa như SQL Server là có liên quan, không có sự khác biệt.

Tôi thường cũng từ khóa chữ hoa và thụt lề cho dễ đọc:

SELECT col 
FROM a 
    INNER JOIN b 
    ON a.id = b.id 
    INNER JOIN c 
    ON b.id = c.id 
+0

Tôi định kiểu nó theo cùng một cách. không có trong ví dụ đó. –

1

Phương pháp B là cú pháp giống như chọn lựa, nhưng được phân tích cú pháp giống như cách thức A. Không có hại khi sử dụng nó. Cá nhân tôi thích phương pháp A quá, bởi vì nó có thể được đọc trong một thời trang lineair.

1

sở thích cá nhân của tôi là

SELECT col1, col2, col3, 
     col4, col5 
FROM a 
    INNER JOIN b ON a.id = b.id 
    INNER JOIN c ON b.id = c.id 
WHERE a.col1 = 1 

Tôi nghĩ rằng sự nhất quán là chìa khóa, tôi thích theo cách của bạn qua các đồng nghiệp của bạn để có thể đọc.

+0

Tôi thích viết mã theo cách này quá, trừ khi có nhiều điều kiện tham gia, sau đó tôi đặt vào .... trên dòng tiếp theo. –

+0

Tôi cũng làm như vậy nếu nó bắt đầu trông hơi đông đúc. Tôi thích trường hợp trên cho các từ khóa SQL cũng có, chỉ có một vài từ khóa và nó giúp phân biệt chúng với các tên cột/bảng. IMO :) –

Các vấn đề liên quan