Jak formatujecie SQL'a

0

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
0

Slowa kluczowe pisze wielkimi literami. Lamie linie przy FROM, WHERE, GROUP itp. W sumie podobnie jak Ty :)

0

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

0

Ja formatuje podobnie jak Misiekd + zagniezdzenia podzapytan i joinow - oczywiscie zwykle jesli zapytanie ma wiecej niz pare slow ;)

0

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.

0

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.

0

Ś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.

0

No właśnie, moją intencją było pytanie, jaka konwencja i dlaczego (jakie ma plusy).

0
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.

0

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1