Heja
Temat w sumie podobny jak ten poniżej (Upiększacz kodu), ale co tam. Mam pytanie jakie konwencje stosujecie przy formatowaniu SQL'a ?
SELECT
A.X, A.Y, B.Z
FROM TEST A
LEFT JOIN TEST1 B ON B.ID=A.ID
WHERE A.X > 0
ORDER BY A.X
Heja
Temat w sumie podobny jak ten poniżej (Upiększacz kodu), ale co tam. Mam pytanie jakie konwencje stosujecie przy formatowaniu SQL'a ?
SELECT
A.X, A.Y, B.Z
FROM TEST A
LEFT JOIN TEST1 B ON B.ID=A.ID
WHERE A.X > 0
ORDER BY A.X
Slowa kluczowe pisze wielkimi literami. Lamie linie przy FROM, WHERE, GROUP itp. W sumie podobnie jak Ty :)
to jaj jeszcze dodam, że jak mam dużo pól (szczególnie, jeśli pola mają długie nazwy/są na nich jakieś rzeczy robione), warunków to też każde w osobnej linii z wcięciem, np
SELECT
Sum(pole1),
pole2,
pole3,
SubStr(pole4, 1, 2),
pole4,
pole5,
pole6
FROM
tabela
WHERE
pole1 = 123
AND pole 5 <> pole4
AND pole 2 IN (SELECT pole FROM tabela_inna)
jednak takie formatowanie zdarza mi się zazwyczaj przy zapytaniach z podselectami z kilku(nastu) tabel - zazwyczaj przy zestawieniach
Ja formatuje podobnie jak Misiekd + zagniezdzenia podzapytan i joinow - oczywiscie zwykle jesli zapytanie ma wiecej niz pare slow ;)
Słowa kluczowe wielkimi literami, nazwy obiektów i pól piszę z uwzględnieniem wielkich i małych liter nawet gdy na bazie mam wyłączony case sensitive. Obowiązkowo stosuję aliasy. Po każdej instrukcji stawiam średnik oraz stosuję wcięcia na dwie spacje.
Sredniki jakos w sql'u mi sie nie podobaja i ich nie stosuje. A reszta dokladnie jak Misiekd z case sensitivem oczywiscie (nazwa pola zawsze z wielkiej litery), a tylko zmienne malymi literami.
Średniki daje ze względu na mniejsze ryzyko popełnienia trudnych do wykrycia błędów.
Miałem przykładowo taki kod:
IF (costam)
SELECT costam FROM costam
ELSE
SELECT costam FROM costam
rozbudowałem go nieco:
IF(costam)
SELECT costam FROM costam
IF (costam) costam
ELSE
SELECT costam FROM costam
i tu się zaczęły kłopoty bo kod działał ale inaczej niż powinien ;)
Wersja ze średnikami:
IF(costam)
SELECT costam FROM costam;
IF (costam) costam;
ELSE
SELECT costam FROM costam;
Gdyby były średniki to wywaliłoby błąd incorrect syntax near keyword ELSE i kod by nie zadziałał oraz można by było go łatwo zlokalizować i poprawić przez wrzucenie kodu w BEGIN - END.
No właśnie, moją intencją było pytanie, jaka konwencja i dlaczego (jakie ma plusy).
b0bik napisał(a)
No właśnie, moją intencją było pytanie, jaka konwencja i dlaczego (jakie ma plusy).
Plusy w wielu wcieciach (joiny i podzapytania) bo latwo sie czyta spore zapytanie zlozone z kilku podzapytan i sporych joinow oraz wielu warunkow w where.
Ja niestety mam w pracy do czynienia z czasem i 1,5k linii kodu sql i jakbym tak rozwlekał to bym się pogubił. W mniejszych korzystam z narzędzia Pl/SQL Beautifier.