Jaka jest różnica między Common Table Expression (CTE) a tabelą tymczasową? A kiedy powinienem używać jednego na drugim? CTE WITH cte (Column1, Column2, Column3) AS ( SELECT Column1, Column2, Column3 FROM SomeTable ) SELECT * FROM cte Tabela temperatur SELECT Column1, Column2, Column3 INTO #tmpTable FROM SomeTable SELECT * FROM …
To pytanie zostało przeniesione z Przepełnienia stosu, ponieważ można na nie odpowiedzieć w Administratorze baz danych stosu wymiany. Migrował 7 lat temu . Z msdn : W przeciwieństwie do tabeli pochodnej, CTE może być samo-referencyjne i może być wielokrotnie przywoływane w tym samym zapytaniu. Używam CTE dość często, ale nigdy …
W przypadku SQL z innych języków programowania struktura zapytania rekurencyjnego wygląda raczej dziwnie. Przejdź go krok po kroku, a wydaje się, że rozpada się. Rozważ następujący prosty przykład: CREATE TABLE #NUMS (N BIGINT); INSERT INTO #NUMS VALUES (3), (5), (7); WITH R AS ( SELECT N FROM #NUMS UNION ALL …
Zwykle tworzę przewodniki po planach, najpierw konstruując zapytanie, które korzysta z właściwego planu, i kopiując je do podobnego zapytania, które tego nie robi. Jest to jednak czasami trudne, szczególnie jeśli zapytanie nie jest dokładnie takie samo. Jaki jest właściwy sposób tworzenia prowadnic planu od zera? SQLKiwi wspomniał o opracowywaniu planów …
Oto drzewo asemblera, które chcę wyszukać za pomocą T-SQLzapytania rekurencyjnego (prawdopodobnie CTE) z oczekiwanymi wynikami poniżej. Chcę poznać całkowitą kwotę na zespół danego elementu. To znaczy, jeśli szukam „Nit”, chcę znać łączną liczbę na każdym poziomie w zespole, a nie tylko bezpośrednie dzieci. Assembly (id:1) | |-Rivet |-Rivet |-SubAssembly (id:2) …
Czy istnieje sposób na wykonanie wielu operacji przy użyciu WITHinstrukcji? Coś jak WITH T AS ( SELECT * FROM Tbl ) BEGIN OPEN P_OUTCURSOR FOR SELECT * FROM T; SELECT COUNT(*) INTO P_OUTCOUNT FROM T; END; Chcę wybrać niektóre dane i ich liczbę ...
Mam nadzieję potwierdzić moją obserwację i uzyskać wyjaśnienie, dlaczego tak się dzieje. Mam funkcję zdefiniowaną jako: CREATE OR REPLACE FUNCTION "public"."__post_users_id_coin" ("coins" integer, "userid" integer) RETURNS TABLE (id integer) AS ' UPDATE users SET coin = coin + coins WHERE userid = users.id RETURNING users.id' LANGUAGE "sql" COST 100 ROWS …
Muszę obliczyć głębokość potomka na podstawie jego przodka. Kiedy rekord ma object_id = parent_id = ancestor_id, jest uważany za węzeł główny (przodek). Próbowałem WITH RECURSIVEuruchomić zapytanie w PostgreSQL 9.4 . Nie kontroluję danych ani kolumn. Schemat danych i tabeli pochodzi z zewnętrznego źródła. Stół stale rośnie . Obecnie około 30 …
Zaktualizuj poniżej Mam tabelę kont o typowej architekturze kont acct / parent do reprezentowania hierarchii kont (SQL Server 2012). Stworzyłem WIDOK za pomocą CTE, aby wyrównać hierarchię, i ogólnie działa pięknie i zgodnie z przeznaczeniem. Mogę sprawdzać hierarchię na dowolnym poziomie i łatwo przeglądać gałęzie. Istnieje jedno pole logiki biznesowej, …
Właśnie patrzyłem na post na StackOverflow, w którym Aaron Bertrand proponuje użycie CTE zamiast tabeli liczb, co jest eleganckim sposobem wykonania danego zadania. Moje pytanie brzmi: dlaczego pierwsza linia CTE zaczyna się średnikiem? ;WITH n AS (SELECT TOP (10000) n FROM (SELECT n = ROW_NUMBER() OVER (ORDER BY s1.[object_id]) FROM …
W PostgreSQL 9.5 podano prostą tabelę utworzoną za pomocą: create table tbl ( id serial primary key, val integer ); Uruchamiam SQL, aby WSTAWIĆ wartość, a następnie AKTUALIZOWAĆ ją w tej samej instrukcji: WITH newval AS ( INSERT INTO tbl(val) VALUES (1) RETURNING id ) UPDATE tbl SET val=2 FROM …
Mamy bazę danych SQL Server, która ma specyfikację kontroli bazy danych, która kontroluje wszystkie działania wykonywane w bazie danych. CREATE DATABASE AUDIT SPECIFICATION [dbAudit] FOR SERVER AUDIT [servAudit] ADD (EXECUTE ON DATABASE::[DatabaseName] BY [public]) Odkryliśmy, że niektóre zapytania zapisują w dzienniku kontroli użycie funkcji skalarnej dla każdego wiersza w zestawie …
Załóżmy, że masz takie nodestabele: CREATE TABLE nodes ( node serial PRIMARY KEY, parent integer NULL REFERENCES nodes(node), ts timestamp NOT NULL DEFAULT now() ); Reprezentuje standardową strukturę drzewiastą z węzłami głównymi u góry i kilkoma węzłami potomnymi zwisającymi z węzłów głównych lub innych węzłów potomnych. Dodajmy kilka przykładowych wartości: …
Omawiając rekurencyjne rozwiązanie CTE dla tego pytania: Uzyskaj ostatnie 5 różnych wartości dla każdego identyfikatora @ypercube natknął się na zaskakujący wyjątek, który skłonił nas do zbadania sposobu obsługi modyfikatorów typów. Znaleźliśmy zaskakujące zachowanie. 1. Rzutowanie typu zachowuje modyfikator typu w niektórych kontekstach Nawet jeśli nie polecono. Najbardziej podstawowy przykład: SELECT …
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.