關於SQL 的with as 迴圈用法
WITH AS短語也叫做子查詢部分(subquery factoring),是用來定義一個SQL片斷,該SQL片斷會被整個SQL語句所用到。這個語句算是公用表表達式(CTE),對於with 的迴圈 sql 2008有限制,最大隻能遞迴 100 次,下面來測試看看。
如我想生成1到200行的資料
程式碼:with t as (
select 1 as id
union all
select t.id+1 from t where t.id<200)
select * from t
執行時報錯:,對於CTE的限制需要利用recursion 函式解除限制,
with t as (
select 1 as id
union all
select t.id+1 from t where t.id<200)
select * from t
option (maxrecursion 0) 這樣執行就沒有問題,0是代表無限大,也可以改1000,或者2000 指定的數值,前提是要大於你遞迴的次數,不然還是報錯。再來說說利用with 自定義值去迴圈指定值,下面拿做的一個SSRS 報表進行演示,excel效果圖如下,現在要作成SSRS 報表。
第一:將出勤人員的姓名與(出勤、上班、下班)做迴圈,再取出刷卡時間。
with x as ------------定義迴圈值
(select * from (values(N'出勤'),
(N'上班'),
(N'下班'))as a (type1)),
y as (select distinct a.userid,b.name,b.BADGENUMBER
from 出勤table a
inner join usertable b on a.USERID = b.USERID,
z as (select * from x,y)
select * from z 結果
可以看到出勤、上班、下班 三個值已經跟每個user進行了迴圈,
第二 :再自定義指定某年的某月存在的日期天數
程式碼如:date1 as
(select convert(varchar(10),dateadd(DAY,t2.number,t1.day),120) day from
(select @date1+'-'[email protected]+'-01' day) t1,
(select number from MASTER..spt_values WHERE TYPE='P' AND number>=0 and number<=31) t2
where convert(varchar(10),dateadd(DAY,t2.number,t1.day),120) like @date1+'-'
)[email protected] 為指定的年份、@date2 為指定的月份,當然需要在前面定義變數值,這裡就省略了,
第三:再將打卡時間進行排名,在http://blog.csdn.net/qyx0714/article/details/72683408 這裡介紹按打卡時間排名取打卡資料的介紹,最終整理SSRS 圖如下:
相關推薦
關於SQL 的with as 迴圈用法
WITH AS短語也叫做子查詢部分(subquery factoring),是用來定義一個SQL片斷,該SQL片斷會被整個SQL語句所用到。這個語句算是公用表表達式(CTE),對於with 的迴圈 sql 2008有限制,最大隻能遞迴 100 次,下面來測試看看。 如我想生
SQL中WITH--AS的用法
一.WITH AS的含義 WITH AS短語,也叫做子查詢部分(subquery factoring),可以定義一個SQL片斷,該SQL片斷會被整個SQL語句用到。可以使SQL語句的可讀性更高,也可以在UNION ALL的不同部分,作為提供資料的部分。 對於UNION ALL,使用WIT
python with as的用法
關系 eth return int 簡潔 機制 self clas blog 以下為轉載https://www.cnblogs.com/DswCnblog/p/6126588.html with。。as。。一個使用場景是文件處理,你需要獲取一個文件句柄,從文件中讀取數據,然
python with as 的用法
final clas 上下文 執行 try __exit__ tmp bsp data with語句: 事後做清理工作。比如文件處理,需要獲取一個文件句柄,從文件中讀取數據,然後關閉文件句柄 不用with語句,代碼如下: file = open("/tmp/foo.txt
python中with...as的用法
with…as,就是個python控制流語句,像 if ,while一樣。 with…as語句是簡化版的try except finally語句。 那我們先理解一下try…except…finally語句是幹啥的。實際上,try…except語句和try…finally語句是兩種語句,用
Python的with...as的用法
這個語法是用來代替傳統的try...finally語法的。 with EXPRESSION [ as VARIABLE] WITH-BLOCK 基本思想是with所求值的物件必須有一個__enter__()方法,一個__exit__()方法。 file = ope
sql with as 遞迴的實現(樹形結構)
WITH AS短語,也叫做子查詢部分(subquery factoring),定義一個sql 片段,改sql 片段會被整個sql語句用到。其中最實用的功能就是資料的遞迴,遞迴的原理:遞迴包括至少兩個查詢,一個查詢作為遞迴的基點也就是起點,另一個查詢作為遞迴的成員。 一、定義一個
python中with as的用法
With語句是什麼? 有一些任務,可能事先需要設定,事後做清理工作。對於這種場景,Python的with語句提供了一種非常方便的處理方式。一個很好的例子是檔案處理,你需要獲取一個檔案控制代碼,從檔案中讀取資料,然後關閉檔案控制代碼。 如果不用with語句,程式碼如下: file =
python中 with-as 語句用法
With語句是什麼? 有一些任務,可能事先需要設定,事後做清理工作。對於這種場景,Python的with語句提供了一種非常方便的處理方式。一個很好的例子是檔案處理,你需要獲取一個檔案控制代碼,從檔案中讀取資料,然後關閉檔案控制代碼。 如果不用with語句,程式碼如下: file = open
關於Oracle中的as和with as 的用法
在Oracle中as關鍵字不能用於指定表的別名,在Oracle中指定表的別名時只需在原有表名和表的別名之間用空格分隔即可, 但可以用於指定列的別名,但在儲存過程中如果列的別名與原有列名相同,在執行時會報錯(編譯時不會出錯),其他情況下 列的別名可以與列名本身相同。 在查詢oracle中as關鍵字的用
ORACLE 中 WITH AS 的用法
下面是摘抄並整合的部分。 一.WHAT: WITH AS短語,也叫做子查詢部分(subquery factoring,可以用來定義一個SQL片斷,該SQL片斷會被整個SQL語句所用,也可以提高sql語句的可讀性, 也有可能是在UNION ALL的不同部分,作為提供
oracle中with as 的用法
select * from emp;select * from empinfo;truncate table empinfoinsert into empinfo(empno,ename,job,mgr
Python中的with...as的用法
這個語法是用來代替傳統的try...finally語法的。 with EXPRESSION [ as VARIABLE] WITH-BLOCK 基本思想是with所求值的物件必須有一個__enter__()方法,一個__exit__()方法。 緊跟with後面的
sql,with as ,in的配合使用
WITH AS的含義 1.WITH AS短語,也叫做子查詢部分(subquery factoring),可以讓你做很多事情,定義一個SQL片斷,該SQL片斷會被整個SQL語句所用到。有
T-SQL with關鍵字 with as 遞迴迴圈表
Select字句在邏輯上是SQL語句最後進行處理的最後一步,所以,以下查詢會發生錯誤: SELECT YEAR(OrderDate) AS OrderYear, COUNT(DISTINCT CustomerID) AS NumCusts FROM dbo.Orde
SQL中使用WITH AS提高性能-使用公用表表達式(CTE)簡化嵌套SQL
column 簡化 expr tor .com 獲取 另一個 rom 指定 一.WITH AS的含義 WITH AS短語,也叫做子查詢部分(subquery factoring),可以讓你做很多事情,定義一個SQL片斷,該SQL片斷會被整個SQL語句所用到。有的時候
公用表達式 CTE with as 用法總結
efi 用法 sta 使用方法 屬於 actor 這就是 oge union 出處: http://wudataoge.blog.163.com/blog/static/80073886200961652022389/ 一.WITH AS的含義 WITH AS短語,
SQL 語句遞歸查詢 With AS 查找所有子節點
商務部 ins AR where reat parent ren nvarchar tab create table #EnterPrise( Department nvarchar(50),--部門名稱 ParentDept nvarchar(50),-
Oracle中with as用法
分組 關鍵字 視圖 group 高效 這也 過程 avi 臨時 with as 相當於虛擬視圖。 例子:需求描述 按照x列分組後統計y列的總值,最終目標是選出比y列總值的三分之一大的那些分組統計信息 使用子查詢方式實現最容易想到的方法 SELECT x, SUM (y)
ORACLE WITH AS 用法,創建臨時表
進一步 有用 cin AI 運行 結構 nbsp index ring 語法: with tempName as (select ....)select ... –針對一個別名with tmp as (select * from tb_name) –針對多個別名wi