BI-SQL丨WHILE

作者: Fabric丨白茶 | 来源:发表于2022-07-29 12:31 被阅读0次

WHILE

WHILE,当的意思。在SQL的语法中,通常可以用来重复执行某段SQL脚本。

通俗来说,就是当XXX时,执行某某操作,意为循环。

看到这里,小伙伴可能会有疑问,PowerBI中是否有类似的操作呢?

答案是有的,不过此类操作我们一般都是在PowerQuery中进行的,在DAX中需要进行循环处理的情景较少。

而在SQL中,有很多场景都需要使用循环语句进行处理,比如数据更新或者递增计算等。

语法

WHILE 条件判断
BEGIN 
执行操作 
SET @i=@i+1 --参数循环递增
END 

注意:

如果嵌套了两个或多个 WHILE 循环,首先运行内层循环结束之前的所有语句,然后下一个外层循环重新开始执行。

使用实例

案例数据:

在白茶本机的数据库中存在名为“CaseData”的数据库。

“Dim_Date“日期表、"Dim_Product"产品表、"Fact_Sales"销售事实表。

例子1:

循环打印数字,从1到9。

DECLARE @NUM INT;
SET @NUM = 1;   
WHILE @NUM<= 9
BEGIN
   PRINT @NUM
   SET @NUM = @NUM + 1;
END

结果如下:

注:此操作无法在PowerBI中执行,会有报错。

例子2:

创建一张表,并在表中循环插入Price小于等于10的ProductName和Price。

USE CaseData
CREATE TABLE BaiCha
(Pname VARCHAR(50),
Prict INT
)

先创建一张表,结果如下:

执行以下语句:

USE CaseData
DECLARE @NUM INT;
SET @NUM=1
WHILE @NUM<= 10
BEGIN
   INSERT INTO BaiCha(Pname,Prict) 
   SELECT ProductName AS T1,Price AS T2 FROM Dim_Product WHERE Price=@NUM
   SET @NUM = @NUM + 1;
END

结果如下:

我们来查看一下数据:

可以看到,价格小于等于10的产品信息已经插入到目标表中。

例子3:

利用双层循环,计算1到9的平方。

USE CaseData
DECLARE @NUM1 INT,@NUM2 INT ,@NUM3 VARCHAR(10);
SET @NUM1=1;
WHILE @NUM1<= 9 
BEGIN
    SET @NUM2=1
    WHILE @NUM2<=@NUM1
    BEGIN
    SET @NUM3=@NUM2*@NUM1
    SET @NUM2=@NUM2+1
    END
PRINT @NUM3
SET @NUM1=@NUM1+1
END

结果如下:

小Bug提示:

经常会有小伙伴循环写着写着就懵掉了,执行循环无法结束,也没有结果显示出来,这种情况下,需要对BEGIN里面的增量SET进行检测,看是否是由于未设置增量导致。

这里是白茶,一个PowerBI的初学者。


相关文章

  • BI-SQL丨WHILE

    WHILE WHILE,当的意思。在SQL的语法中,通常可以用来重复执行某段SQL脚本。 通俗来说,就是当XXX时...

  • BI-SQL丨AND & OR & IN

    AND函数 & OR函数 & IN函数 AND函数、OR函数和IN函数都可以理解是WHERE函数的补充,当然也可以...

  • BI-SQL丨WITH AS

    WITH AS 在DAX函数中,有些时候我们写的DAX逻辑引用次数过多,或者是性能过差,我们都会选择使用VAR来定...

  • BI-SQL丨INSERT INTO

    INSERT INTO语句 INSERT INTO语句通常可以用来在SQL的查询中针对表插入某些行数据。 看到这里...

  • BI-SQL丨ORDER BY

    ORDER BY语句 ORDER BY语句,在SQL中通常可以用来作为查询结果的排序依据。当然在PowerBI的D...

  • BI-SQL丨WHERE

    WHERE函数 WHERE函数,属于常用函数之一,通常可以用来进行条件查询。 其用途类似于DAX函数中的Filte...

  • BI-SQL丨SELECT

    白茶之前介绍过,无论是从PowerBI的角度来看,还是从职业发展规划的角度来讲,一个不会SQL的PowerBI分析...

  • BI-SQL丨DISTINCT

    DISTINCT函数 在SQL中,DISTINCT函数也是常见函数之一,通常可以用来进行对表或者列进行去重操作。 ...

  • BI-SQL丨TOP

    TOP函数 TOP函数,属于高级函数之一,通常可以用来返回固定数量的行数。 对于一定数据量级的事实表来说,此函数可...

  • BI-SQL丨JOIN

    JOIN JOIN在SQL Server中是一个很重要的概念。 JOIN经常用于将两个表或者多个表通过主外键关联进...

网友评论

    本文标题:BI-SQL丨WHILE

    本文链接:https://www.haomeiwen.com/subject/csuzkrtx.html