回答

收藏

用cte创建while循环

技术问答 技术问答 332 人阅读 | 0 人回复 | 2023-09-14

如何从while循环中创建sql server cte2 R0 p- |+ D  _( N& \# b
这样的循环, p1 a7 t# L& ]
  declare @ind as int
/ n) C, T) b- V5 v! W  declare @code as nvarchar9 X) k0 z. G$ C9 {
  set @ind  = 06 n; y5 S- M$ ~
   while @ind 如果需要表:4 z+ D3 l1 S, v; q  Y
;WITH Sec(Number) AS 4 ~& R7 w" r( u
(
+ }7 ?: A8 W1 y7 K" o) o0 l    SELECT 0 AS Number
0 Z4 u5 i+ V# V" R8 t# e    UNION ALL; s6 c4 H# n- e1 {0 }$ C
    SELECT Number + 1; i. {. I+ B! t# r! p; |
    FROM Sec
( Z' a; P- M' X    WHERE Number 如果您需要一个字符串:
/ x7 p' ?6 P/ t8 Y;WITH Sec(Number) AS
8 ?7 s+ a3 Y, e(
5 Z& t: J( s) ]2 `, E    SELECT 0 AS Number
5 h. j' Q" x( S: {5 m7 z    UNION ALL
0 D* i7 N' h& M4 @) x7 f1 ~    SELECT Number + 1
% f3 u) E  ^, [, a) j6 i; _3 |9 o    FROM Sec9 A: W- U3 O  I9 }
    WHERE Number < 884
4 K. @) U, ~) w% c9 ~- |! M2 O)+ |4 H& P; I! n- Z7 {
SELECT STUFF(a.[Str], 1, 1, '')4 y1 r% t+ M5 }" x0 A
FROM7 S4 p# f6 n+ K* ?8 N
(
; D, K: P+ I  E6 [* Z* G; e    SELECT (SELECT ',' + CAST(Number AS NVARCHAR(3))
' e# `/ H& |9 h$ s6 o    FROM Sec
1 z  v7 C0 Z( v* m6 r: R8 X4 N0 `    FOR XML PATH(''), TYPE2 f/ S4 A, ~; X* x1 Z8 U
    ).value('.','varchar(max)') AS [Str] - j1 D" q! D& E  C% ]& H
) AS a; h6 n; G* [& g0 i
OPTION(MAXRECURSION 0)
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则