Описание тега sql-cte

В Microsoft SQL Server 2005 общее табличное выражение (CTE) представляет собой временный именованный набор результатов, на который можно ссылаться в операторе SELECT, INSERT, UPDATE или DELETE.
1 ответ

Печать дерева с использованием SQL CTE

Схема выглядит следующим образом: CREATE TABLE [Structure]( [StructureId] [uniqueidentifier] NOT NULL, [SequenceNumber] [int] NOT NULL, -- order for siblings, unique per parent [ParentStructureId] [uniqueidentifier] NULL, CONSTRAINT [Structure_PK] P…
27 окт '10 в 10:26
1 ответ

Чтение нескольких записей, связанных с каждой записью в наборе результатов одновременно

У меня есть 3 таблицы: Message стол с MsgID, MsgText, MsgDate колонны. MsgId это ПК. MessageSender стол с MsgId, SenderId, SenderName, MsgId это ФК. MessageTo стол с MsgId, ToId, ToName, MsgId это ФК. Каждое сообщение будет иметь одного отправителя.…
07 мар '13 в 09:06
4 ответа

UNION & ORDER две таблицы внутри общего выражения таблицы

У меня есть CTE внутри хранимой процедуры SQL, которая UNIONзначения из двух баз данных - это номера клиентов и дата последнего заказа этого клиента. Вот оригинальный SQL - ;WITH CTE_last_order_date AS ( SELECT c1.customer ,MAX(s2.dt_created) AS las…
1 ответ

Получить родителей и бабушек и дедушек конкретного ребенка

У меня есть стол как ниже имя таблицы:ExampleTable ChildID ChildCommonID ParentID 1 2 0 2 3 0 3 4 1 4 5 3 5 6 4 Проблема в: у меня есть пример идентификатора ребенка:ChildID= 5 поэтому мне нужно проверить, есть ли у него родитель или нет, если он со…
15 июн '15 в 10:38
1 ответ

SQL - Создание представления с несколькими CTE

У меня есть вид для создания, который имеет 2 CTES. Это то, что я сделал ниже. Первая часть в порядке, но после "И" все не работает. Ваш вклад приветствуется CREATE VIEW dbo.VW.SPAg AS With today as (SELECT * FROM dbo.Work_Days WHERE [Date] = CAST(G…
23 сен '15 в 15:29
3 ответа

Влияние на производительность прикованной таблицы CTE и Temp

У меня есть следующий цепной запрос CTE (упрощенно): ;WITH CTE1 AS( SELECT * FROM TableA ), CTE2 AS( SELECT * FROM TableB b INNER JOIN CTE1 c ON b.id = c.id ) SELECT * FROM CTE2 Если я разорву цепочку CTE и сохраню данные CTE1 во временную таблицу, …
02 ноя '18 в 17:07
0 ответов

CTE рекурсивно обновляет значения полей, пока не останется никакого значения по умолчанию

Я пытаюсь написать рекурсию, которая обновляет значения поля, пока не останется значение по умолчанию '0'. Отправной точкой является эта таблица: USE [Test] DROP TABLE IF EXISTS [Test].[dbo].[T0] CREATE TABLE [Test].[dbo].[T0] ( ID1 nvarchar(50), ID…
1 ответ

Оптимизация внешнего применения SQL Server

У меня есть две таблицы - Таблица A и Таблица B. Таблица A имеет 121 903 строки. Таблица B имеет только 95 строк. Мне нужно объединить таблицу A с таблицей B таким образом, чтобы я получил первую строку таблицы B, в которой есть соответствующие стро…
3 ответа

SQL: Как заполнить строки между двумя конкретными строками одним и тем же значением?

Мне нужно заполнить / заменить строки "-" между двумя "AL" ИЛИ двумя "MX" со значением "AL" или "MX" в зависимости от того, где появляется "-". Для целей этого примера я использую только 2 uid (на самом деле у меня больше uid). Кроме того, таблица у…
14 окт '16 в 16:05
1 ответ

Как вставить в более чем одну переменную из CTE в различных условиях?

Есть одна таблица, которую я использовал with предложение для запросов SQL. Как указано в названии, я хочу вставить в @tempTableA или же @tempTableB от SomeTable в разных условиях. Но это не работает. Что я неправильно понял в CTE? Есть ли другой сп…
24 фев '19 в 12:47
1 ответ

Расчет формулы с помощью дерева CTE

Данные У меня есть следующие частичные данные id parent multiplier const -- ------ ---------- ----- 1 NULL 1.10 1.00 2 1 1.20 2.00 3 1 1.30 3.00 4 1 2.40 4.00 5 2 2.50 5.00 6 2 2.60 6.00 7 2 2.70 17.00 8 3 2.80 18.00 9 3 3.90 19.00 10 3 3.10 7.00 11…
28 янв '15 в 06:28
3 ответа

CTE с DELETE - альтернатива хранилищу данных SQL

Я хотел бы удалить все строки в таблице, где batchId (порядковый номер) старше, чем предыдущие два. Я мог бы сделать это в базе данных SQL с помощью запроса: WITH CTE AS( SELECT *, DENSE_RANK() OVER(ORDER BY BATCHID DESC) AS RN FROM MyTable ) DELETE…
1 ответ

Номер строки прерывается при использовании с CTE

Это мой запрос, SQL внутри CTE работает нормально, и все, что я хочу получить первые 20 строк для каждого названия города: WITH taniCte AS ( SELECT sl.Adi AS [CityName], mt.ICD10Kodu AS [Tanı], count(mt.ICD10Kodu) AS sayi, RowNum = ROW_NUMBER() OVER…
18 июн '18 в 14:53
2 ответа

Как использовать CTE, чтобы сделать рекурсивный для предыдущего ряда?

У меня есть проблема, которую, я считаю, можно решить с помощью CTE. Я создаю SQL-запрос, показанный ниже: with CTE as ( SELECT Distinct T.testType as name,'tmpRequirement_TestType_Canvas' as template,'n/a' as layout, 0 as x,0 as y,'855' as width,'4…
03 янв '18 в 02:05
2 ответа

Максимальная рекурсия исчерпана

Мне нужен эффективный способ передачи параметра [StartingNumber] и последовательного отсчета от [StartingNumber], пока я не найду пропущенное число. Я использую следующий sql, чтобы получить следующий номер: DECLARE @StartOffset int SET @StartOffset…
06 мар '11 в 07:28
1 ответ

Рекурсивное удаление строк в самоссылающейся таблице с использованием CTE. Как происходит процесс?

Я работаю над сторонним проектом, и для того, чтобы удалить строку и всех ее потомков в самоссылающейся таблице, я использую рекурсивный CTE, подобный этому, внутри триггера: CREATE TRIGGER dbo.tr_Comment_Delete ON dbo.Comment INSTEAD OF DELETE AS ;…
12 сен '17 в 21:50
1 ответ

Данные группировки SQL с перекрывающимися временными интервалами

Мне нужно сгруппировать данные, которые связаны друг с другом, перекрывая временные интервалы на основе времени начала и окончания записи. SQL-скрипка здесь: http://sqlfiddle.com/ Текущий запрос, который я построил, дает неверные результаты. Callid …
09 июл '19 в 23:28
1 ответ

Как объединить идентификаторы uniqueidentifier в запросе T-SQL CTE в строку

Я хочу построить uniqueidentifier Идентификаторы через запятую в виде строки в запросе T-SQL CTE: WITH departmentcte(ID, Name, ParentID, LEVEL, FullPath) AS ( SELECT ID, Name, ParentID, 0 AS LEVEL, CAST(Name AS VARCHAR(1024)) AS FullPath FROM ItemMo…
19 авг '20 в 07:28
2 ответа

CTE (общее табличное выражение) в EFCore

У меня есть таблица в моей БД, в которой хранится иерархия местоположений. Имеет 3 колонки (Id, Name, ParentId). Мне нужно загрузить базу строк по условию и всех их родителей до корня. Если бы это было в ADO, я бы использовал следующее утверждение. …
1 ответ

Выполнение общего запроса SQL Server

Пока у меня есть следующий запрос SQL Server 2005: WITH D AS ( SELECT CONVERT(VARCHAR, '2020.11.01', 102) AS d_y_m, CAST('2020-11-01' AS DATETIME) AS dt UNION ALL SELECT CONVERT(VARCHAR, DATEADD(dd, 1, z.dt), 102) AS d_y_m, DATEADD(dd, 1, z.dt) FROM…