2012-01-25 30 views
6

Điều nào là tốt nhất?Bạn có nên sử dụng bí danh cột có hoặc không có từ khóa AS không?

Select TestColumn TC 

hoặc

Select TestColumn AS TC 

Tôi thích là người đầu tiên nhưng tôi không chắc chắn nếu điều này là một cách hiện đại của tuyên bố các bí danh.

+4

Xem bài đăng trên blog gần đây của Aaron Bertrand về chủ đề] (http://sqlblog.com/blogs/aaron_bertrand/archive/2012/01/23/bad-habits-to-kick-using-as-instead- of-for-column-aliases.aspx) - ông chủ trương sử dụng 'SELECT SomeColumnName = .......' trên cả hai lựa chọn của bạn –

+4

Có một ý kiến ​​khác về chủ đề: [Thói quen xấu để đá: Sử dụng AS thay vì = cho bí danh cột] (http://sqlblog.com/blogs/aaron_bertrand/archive/2012/01/23/bad-habits-to-kick-using-as-instead-of-for-column-aliases.aspx) –

+0

@marc_s: Jinx! Đoán chúng ta đều là những người theo dõi Aaron Bertrand. :-) –

Trả lời

4

Tôi thích thứ hai (sử dụng "AS"). Nếu nó hoạt động một trong hai cách, chỉ cần sử dụng những gì bạn thích và sử dụng nó một cách nhất quán.

3

Nó sẽ không tạo ra bất kỳ sự khác biệt nào bạn sử dụng, chỉ cần gắn bó với nó. Tôi thích AS cá nhân, đó là cảm giác cụ thể hơn.

3

Cả hai đều hoạt động. Chọn bất cứ điều gì bạn thích, hoặc bất cứ điều gì bạn cảm thấy thêm vào khả năng đọc của truy vấn. Cá nhân tôi thường bí danh với "AS", chỉ là một smidge dễ đọc hơn trong quan điểm của tôi.

9

Hai mục này tương đương với hầu hết các mục đích. Tôi thích ký hiệu AS rõ ràng hơn.

Một lý do tại sao tôi sử dụng biểu mẫu AS là vì, trong DBMS tôi sử dụng chủ yếu, nó cung cấp biện pháp bảo vệ chống lại các từ khóa mới xuất hiện trên các nâng cấp hệ thống. Đó là:

SELECT TestColumn KeyWord 

nơi 'KeyWord' trở thành một từ khóa trong một thông cáo trong tương lai có thể gây ra vấn đề, trong khi ở các hệ thống cụ thể, sử dụng:

SELECT TestColumn AS KeyWord 

vẫn có giá trị.

Gần đây tôi đã học được (đã được thông báo) rằng Oracle không hỗ trợ AS trong bí danh bảng.

FROM TableName T1  -- OK in Oracle 
FROM TableName AS T1 -- Not OK in Oracle 

Nếu điều đó là chính xác (tôi chưa xác thực), thì tôi coi AS là lỗi.

Đó là lựa chọn của bạn; hai ký hiệu tương đương nhau.

+0

+1 và có Oracle không cho phép 'FROM TableName AS T1'. Cho rằng họ không yêu cầu hiệu suất tiêu chuẩn 100% Tôi không chia sẻ quan điểm của bạn rằng nó nên được gọi là "lỗi" mặc dù :-) –

+0

@ JackDouglas: Đối với tôi, đó là một vấn đề giả thuyết, và do đó một lỗi giả định (vì tôi không làm việc với Oracle). Nhưng nó sẽ làm tức giận ánh sáng ban ngày của tôi nếu tôi cần sử dụng Oracle. Tuy nhiên, một điều chỉnh khi cần thiết. Cảm ơn bạn đã xác nhận những gì tôi nhớ được kể! –

3

Điều đó tùy thuộc.

Cụ thể hơn, nó phụ thuộc vào các tiêu chuẩn mã hóa cho môi trường mà bạn đang làm việc. Bất kể sở thích cá nhân nào, bạn có thể phải điều chỉnh phong cách của mình để phù hợp với các tiêu chuẩn mã hóa của nhóm hoặc nhóm mà bạn đang làm việc. Điều quan trọng hơn là SQL của bạn có giao diện giống như phần còn lại của SQL xung quanh nó để tạo điều kiện thuận lợi trong việc kiểm tra và gỡ lỗi mã của bạn khi nó được giao cho nhóm thử nghiệm và cuối cùng là nhóm hoạt động và bảo trì trong sản xuất.

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