1. 程式人生 > >mssql sqlserver with cte表示式(遞迴)找出最頂值的方法分享

mssql sqlserver with cte表示式(遞迴)找出最頂值的方法分享

摘要: 下文通過遞迴的方式找出最頂級部門的方法分享,如下所示: 實驗環境:sql server 2008 R2

下文通過cte-with表示式實現遞迴,獲取一個公司的頂級部門,如下所示 例:部門表

create table [maomao365.com]
(keyId int ,parentId int,
deptName nvarchar(30))

insert into [maomao365.com]
(keyId,parentId,deptName)
values
(1,0,'總經辦'),
(2,0,'IT中心'),
(10,1,'銷售部'),
(11,1,'售後部
'), (111,11,'售後1'), (1111,111,'售後1_1'), (12,1,'市場部'), (21,2,'運維部'), (22,2,'開發部') ---例1:獲取 售後部keyId=1111所在的頂級部門 ; with testA( [keyId], [parentid],deptName) as ( select keyId, parentid,deptName from [maomao365.com] where keyId = 1111 union all select a.keyId, a.parentid,a.deptName from
[maomao365.com] a inner join testA on a.[keyId] = testA.[parentId] --遞迴 ) select * from testA where parentId=0; go truncate table [maomao365.com] drop table [maomao365.com]

相關推薦

mssql sqlserver with cte表示式()方法分享

摘要: 下文通過遞迴的方式找出最頂級部門的方法分享,如下所示: 實驗環境:sql server 2008 R2 下文通過cte-with表示式實現遞迴,獲取一個公司的頂級部門,如下所示 例:部門表 create table [maomao365.com] (keyId int ,parent

二叉樹的前序遍歷建樹及其輸出所有結點,用佇列父親結點,用度為1的結點個數

實現功能 1.結點類的釋放 2.前序遍歷建樹 3.前序遍歷輸出二叉樹結點 4.用佇列實現查詢給定結點的父親結點 5.查詢二叉樹中出度為1的結點的個數 Note:關於樹的輸入,是一維陣列的形式輸入且是前序序列形式建樹需要以#號代表該出無子樹 比如以下陣列

linux C 一個路徑下的所有檔案

#include <stdio.h> #include <dirent.h> #include <stdlib.h> #include <string.h&g

mssql sqlserver 使用sql指令碼 清空所有資料庫表資料的方法分享

摘要: 下文講述清空資料庫中所有表資訊的方法分享,如下所示: 實驗環境:sql server 2008 實現思路: 1.禁用所有約束,外來鍵 2.禁用所有觸發器 3.刪除表資料 4.開啟觸發器 5.開啟約束 CREATE PROCEDURE proc_deleteDateSql /* 生

1002:法求

 Problem Description 設整數序列a1,a2,...,an,給出求解最大值的遞迴程式。  Input 有多組資料,每組第一行為序列長度n(0<n<50),第二行為該整數序列的各元素。  Output 輸出該整數序列中

資料結構——法求解

【遞迴法求解最大值和最小值】 問題描述:若一個無序的線性表A[MaxSize]採用順序儲存方式,元素型別為整型數。試寫出遞迴演算法求出A中的最大元素和最小元素。 要求: 順序表的資料通過呼叫演算法initRandomize()隨機產生。 #include <stdio.h>

python求列表

需求 : 對於列表中的元素,求最大值。你可能會想到或者對列表進行迭代,max變數始終記錄最大的值,如果迭代過程中有比該最大值還大的,我們就更新我們的max值以上方法是使用迴圈,今天我們可以使用遞迴來進行簡單嘗試思路:我們將問題簡化,求n個數的最大值,我們需要知道n-1個數的最

練習4-10

本題要求編寫程式,找出給定一系列整數中的最小值。 輸入格式: 輸入在一行中首先給出一個正整數n,之後是n個整數,其間以空格分隔。 輸出格式: 在一行中按照“min = 最小值”的格式輸出n個整數中的最小值。 輸入樣例: 4 -2 -123 100 0 輸出樣例

再來練一遍,模擬鍵盤輸入數字,

package yn.ngems.cn.util; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class InputUtil {  

模擬輸入數字,

package yn.ngems.cn.util; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader

練習4-10 (20 分)

#include<stdio.h> int main() { int n,i,num,min; scanf("%d",&n); scanf("%d",&min); for(i=1;i<n;

練習4-10 (20 point(s))

練習4-10 找出最小值 (20 point(s)) 本題要求編寫程式,找出給定一系列整數中的最小值。 輸入格式: 輸入在一行中首先給出一個正整數n,之後是n個整數,其間以空格分隔。 輸出格式: 在一行中按照“min = 最小值”的格式輸出n個整數中的最小值。 輸入樣例:

5-21 (20分)

本題要求編寫程式,找出給定一系列整數中的最小值。 輸入格式: 輸入在一行中首先給出一個正整數nnn,之後是nnn個整數,其間以空格分隔。 輸出格式: 在一行中按照“min = 最小值”的格式輸出n

筆試題&面試題:給定n個數,要求比較次數1.5n同時

寫出一個演算法,對給定的n個數的序列,返回序列中的最大和最小的數. 設計出一個演算法,只需要執行1.5n次比較就能找到序列中最大和最小的數嗎?能否再少?分析:要求比較次數為1.5n,使用一般的逐個遍歷每個元素然後判斷其是否為最大最小值是需要2n次的比較的,所以這樣的方法是行

SQL Server 公用表表達式(CTE)實現

公用表表達式簡介: 公用表表達式 (CTE) 可以認為是在單個 SELECT、INSERT、UPDATE、DELETE 或 CREATE VIEW 語句的執行範圍內定義的臨時結果集。CTE 與派生表類似,具體表現在不儲存為物件,並且只在查詢期間有效。與派生表的不同之處在於,公用表表達式 (CTE) 具有一個

Codeforces Round #383 (Div. 2) C(環求小公倍數)

題目連結 題目大意:表示意思有點繞,什麼owww的,通俗的來講就是找環,問的是滿足x走到y的步數可以讓y走到x。 分析 那麼如果x走到x是一個偶數n,說明可以用n/2走到y且y不等於x 然後再用n/2步數走到x。這個環的權值就是n/2; 如果n是一個奇

簡單最近公共父節點

如上圖,我們要求任意兩個點的最接近的公共的父節點,比如:9和11的最近的公共父節點是2。 intput: 10 4 output: 2 分析:我們可以從所給的兩個節點的開始向上找,一直找到

從給定陣列中大的兩個數——二分

分析1:對於給定陣列找出其中最大的兩個數,很容易想到的就是遍歷陣列。首先遍歷整個陣列,找出最大的一個元素並記錄下該位置;然後分別遍歷該位置之前的區間和該位置之後的區間,分別找出這兩個子區間的最大值,然

正則表示式--匹配與非貪婪匹配

1. 表示式的遞迴匹配     有時候,我們需要用正則表示式來分析一個計算式中的括號配對情況。比如,使用表示式 "/( [^)]* /)" 或者 "/( .*? /)" 可以匹配一對小括號。但是如果括號 內還嵌有一層括號的話 ,如 "( ( ) )",則這種寫法將不能夠匹配正

mybatis 實現查詢樹結構節點

mybatis 實現遞迴查詢出樹結構節點 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.