2012-04-06 76 views
1

我的工作我的SQL,和我有下面的語句:建議SQL格式化

1 SELECT c.credit_display, t.title, t.provider 
2  FROM credits c 
3   INNER JOIN title t 
4   ON c.vendor_id = t.vendor_id 
5  WHERE c.position = 'Director' and t.provider = 'Premiere' 
6   INTO OUTFILE '/var/tmp/file.csv' 
7   FIELDS TERMINATED BY ',' 

我想知道正確的格式將與問候選項卡的內容。什麼時候縮進的建​​議做法是什麼(例如,第三行是兩個製表符還是三個製表符?)。

+0

做任何最可讀的。如果您正在開發團隊項目,請確定標準格式準則以供所有人使用。像很多(但不是全部)語言一樣,縮進不會在SQL中產生功能差異。 – Wiseguy 2012-04-06 18:23:49

回答

2

這都是非常主觀的

由於INTO OUTFILEFIELDS選項屬於整個SELECT聲明,我可能不會縮進他們WHERE條款之下,而是在最左邊的位置(無壓痕)

既然你有多個WHERE條件,你可以在新行上縮進每一行。我將同樣應用於SELECT列和FROM表。 JOIN中的ON子句在其適用的JOIN ed表下縮進。

SELECT 
    /* each column on its own line */ 
    /* unless it is only 1 column */ 
    c.credit_display, 
    t.title, 
    t.provider 
FROM 
    credits c 
    INNER JOIN title t 
     /* ON clause indented beneath the join */ 
     ON c.vendor_id = t.vendor_id 
WHERE 
    /* each condition on its own line */ 
    c.position = 'Director' 
    AND t.provider = 'Premiere' 
/* This apply to the entire statement so I would not indent them 
INTO OUTFILE '/var/tmp/file.csv' 
    /* You might indent this and other LINES TERMINATED BY options 
    beneath the OUTFILE line */ 
    FIELDS TERMINATED BY ',' 

縮進是一個非常主觀的事情,做的最好的事情就是來與你的團隊協議,你如何都縮進代碼。

0

這是所有的個人偏好(或公司編碼標準,取決於你的環境)。我傾向於寫下我這樣的查詢:

SELECT c.credit_display, t.title, t.provider 
FROM credits c 
INNER JOIN title t ON c.vendor_id = t.vendor_id 
WHERE c.position = 'Director' AND t.provider = 'Premiere' 
INTO OUTFILE '/var/tmp/file.csv' 
FIELDS TERMINATED BY ',' 

查詢的每一行都對齊。縮進取決於它在代碼中的位置以及正在使用哪種語言。但是,這一切都取決於個人偏好或公司標準。