当前位置:网站首页>BI-SQL丨WHILE
BI-SQL丨WHILE
2022-07-30 13:39:00 【PowerBI丨白茶】
WHILE
WHILE,当的意思。在SQL的语法中,通常可以用来重复执行某段SQL脚本。
通俗来说,就是当XXX时,执行某某操作,意为循环。
看到这里,小伙伴可能会有疑问,PowerBI中是否有类似的操作呢?
答案是有的,不过此类操作我们一般都是在PowerQuery中进行的,在DAX中需要进行循环处理的情景较少。
而在SQL中,有很多场景都需要使用循环语句进行处理,比如数据更新或者递增计算等。
语法
WHILE 条件判断
BEGIN
执行操作
SET @[email protected]+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 [email protected]
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<[email protected]
BEGIN
SET @[email protected]*@NUM1
SET @[email protected]+1
END
PRINT @NUM3
SET @[email protected]+1
END结果如下:
小Bug提示:经常会有小伙伴循环写着写着就懵掉了,执行循环无法结束,也没有结果显示出来,这种情况下,需要对BEGIN里面的增量SET进行检测,看是否是由于未设置增量导致。
这里是白茶,一个PowerBI的初学者。
边栏推荐
- R语言使用aov函数进行单因素协方差分析(One-way ANCOVA)、使用effects包中的effect函数来计算调整后的分组均值(calculate adjusted means)
- ENVI Image Processing (6): NDVI and Vegetation Index
- Study Notes - Becoming a Data Analyst in Seven Weeks "Week 2: Business": Business Analysis Metrics
- 重保特辑|拦截99%恶意流量,揭秘WAF攻防演练最佳实践
- VLAN实验
- 一本通循环结构的程序设计题解(2)
- (一)Multisim安装与入门
- HCIP(第十五天) —— 交换机(一)
- jsArray array copy method performance test 2207300823
- 元宇宙的六大支撑技术
猜你喜欢
随机推荐
腾讯称电竞人才缺口200万;华为鸿蒙3.0正式发布;乐视推行每周工作4天半?...丨黑马头条...
一本通循环结构的程序设计第一章题解(1)
[ARC092B] Two Sequences
【Pytorch】如何在关闭batch-norm的同时保持Dropout的开启
自从外包干了四年,基本废了...
当下,产业园区发展面临的十大问题
MQTT网关读取西门子PLC数据传输到阿里云平台案例教程
CF780G Andryusha and Nervous Barriers
HCIP(第十五天) —— 交换机(一)
无代码开发平台应用可见权限设置入门教程
R语言ggplot2可视化:使用ggpubr包的ggboxplot函数可视化箱图、width参数自定义箱图中箱体的宽度
shell脚本流程控制语句
The path to uniting the programmer: "titles bucket" to the highest state of pragmatic
LeetCode二叉树系列——515.最每个树行中找最大值
R语言使用方差分析ANOVA比较回归模型的差异、anova函数比较两个模型并报告它们是否存在显著差异(两个模型的数据相同,一个模型使用的预测特征包含另外一个模型的特征)
Skywalking入门
What is the level of Ali P7?
jsArray数组复制方法性能测试2207292307
人社部公布“数据库运行管理员”成新职业,OceanBase参与制定职业标准
Current and voltage acquisition module DAM-6160








