通过使用别名让 SQL 更简短-数据库教程shulanxt.com-帆软软件有限公司
MySQL视频教程导航
https://www.shulanxt.com/database/mysqlvideo/p1
SQL 别名

SQL 别名
通过使用 SQL,可以为表名称或列名称指定别名。
基本上,创建别名是为了让列名称的可读性更强。
列的 SQL 别名语法
SELECT column_name AS alias_name
FROM table_name;
表的 SQL 别名语法
SELECT column_name(s)
FROM table_name AS alias_name;
SQL 别名_SQL AS - 树懒学堂
在下面的情况下,使用别名很有用:
在查询中涉及超过一个表
在查询中使用了函数
列名称很长或者可读性差
需要把两个列或者多个列结合在一起
参数应用 数据集参数
数据集参数_SQL语句查询_定义数据集_定义参数
数据集 SQL 查询语句中可以使用参数宏 ${}动态地生成过滤条件,${} 执行结果与 SQL 语句拼接起来形成最终的查询语句,传递给数据库执行。SQL 语句中可以使用多个 ${},定义多个参数使用。
使用${} 定义参数时,{ }内写入的内容即为定义参数的内容,其中可以使用 FineReport 所有内置的函数,如 if 函数、len 函数等。{ }中除了 FineReport 内置的函数名、常量、字符串拼接语法外,其他变量就是数据集参数。
如:SELECT * FROM 销量 where 地区 = ‘${area}’ 中定义的数据集参数为 area。
注:定义数据集参数时,尽量不要在${}中直接使用{ 、},可能会无法解析。若必须在${}中直接使用{ 、},需要使用函数 CONCATENATE 转义,例如:SELECT * FROM 销量${‘{‘}语句会出现报错,需要将语句改为 SELECT * FROM ${CONCATENATE(“销量{“)},即可正常查询。
带有数据集参数的 SQL 语句写好后,点击数据集定义界面「预览」按钮时,若显示出定义的数据集参数。则表明数据集参数定义成功。如下图所示:
在参数位置输入值后点击确定,参数值就会代入 SQL 语句中,查询出数据。

如下给出几种常见的应用方式,用户在使用时按实际场景调整即可。注意,因为数据集参数用在 SQL 查询语句中,所以在使用时,特别要注意语法和对应数据库类型的 SQL 语法匹配。
2.1 简单应用
如要定义一个地区参数,通过此参数过滤数据。新建数据集时,就可以在 SQL 查询语句中定义一个数据集参数 area:SELECT * FROM 销量 where 地区 = ‘${area}’
SQL 语句中,其他内容都是确定的,唯有 area 不确定,当 area 对应不同值时,数据集也将查询出不同地区的数据。
2.2 带公式的应用
定义数据集参数时,可以使用 FineReport 所有内置函数。如需要定义一个地区参数,当地区为空时,查询所有地区的数据;当地区值不为空时,查询对应地区的数据:
SELECT * FROM 订单 where 1=1 ${if(len(area) == 0,””,”and 货主地区 = ‘” + area + “‘”)}
定义时,先使用函数 len 获取参数的长度,然后使用 if 函数进行判断
- 如果 area 参数的长度为 0,则内容为空,SQL 拼接后为 SELECT * FROM 订单 where 1=1;
- 如果 area 参数的长度不为 0,则将字符串 and 货主地区 = ‘、参数area、‘拼接成一句 SQL ,如area的值为华东,那么参数定义部分的执行结果为and 货主地区=’华东’,完整的 SQL 语句就变成:SELECT * FROM 订单 where 1=1 and 货主地区=’华东’
2.3 定义多个参数
如果在数据过滤中,需要多个过滤条件,则可以定义多个数据集参数,如:
SELECT * FROM 订单 where 1=1 ${if(len(area) == 0,””,”and 货主地区 = ‘” + area + “‘”)} ${if(len(province) == 0,””,”and 货主省份 = ‘” + province + “‘”)}
其中使用了两次 ${},定义了两个数据集参数 area 和 province,定义过程解释可参考 2.2 节。
2.4 嵌套应用
定义数据集参数时,也可以通过一些逻辑判断嵌套定义多个数据集参数。如:
SELECT * FROM 销量 where 1=1 ${if(len(area)!=0,” and 地区='”+area+”‘”,if(len(product)=0,””,” and 产品='”+product+”‘”))}
if 函数是 FineReport 内置的公式,变量 area 和 product 是数据集参数,如果len(area)!=0,即 area 参数不为空,即以
SELECT * FROM 订单 where 1=1 and 货主地区=’area’ 查询,如地区为空,则要判断 len(product) ,若product参数为空,则不拼接任何查询条件,即查出所有,否则以 SELECT * FROM 订单 where 1=1 and 产品=’product’ 查询。
3 示例
3.1 定义数据集参数
新建数据集 ds1,数据库查询对话框中写入 SQL 查询语句 SELECT * FROM 销量 WHERE 地区=’${area}’,相当于在数据库查询语句中定义一个数据集参数area。点击右下角「刷新」按钮,下方数据集参数管理面板会显示已经新建好的数据集参数area,设置它的默认值为华东。点击「确定」,即同时完成了数据准备和定义数据集参数的工作。如下图所示:

3.2 表格样式设计
1)如下图所示设置表格样式,其中给表格选择预定义样式 Head类型的样式,标题字体自动居中。如下图所示:

2)将数据集中的字段拖入到对应单元格中,字体居中,给表格整体添加预定义样式默认的天蓝色内外框。
3)选中 C2 单元格,右边属性面板选择「单元格元素>基本」。数据设置下拉框选择汇总>求和。
3.3 参数添加控件
1)点击参数面板的「编辑」按钮,进入参数面板设置界面。
2)右上角控件设置面板会显示没有添加控件的参数,点击 「area 」或者点击「全部添加」,将参数的默认控件添加到参数面板。如下图所示:
注:参数与控件是通过参数名称进行绑定的,也就是说当控件名称与参数名称一致时,参数与控件就进行了绑定,即在 Web 端给控件赋值就相当于给参数赋值。

3)参数area的默认控件添加到参数面板后,效果如下图所示:
注:如果不想点击「全部添加」或「参数」快捷添加默认控件,也可以直接从控件栏中将控件拖拽到参数面板中,修改控件的名称与参数名称一致,即可将控件与参数进行绑定。

4)点击自定义控件的「编辑」按钮,选择下拉框控件类型,让用户通过下拉框选择参数值。
5)要想报表预览时点击「下拉框」可以出现参数值的选项,则需要设置下拉框的数据字典为销量表下的地区字段。
参数面板选中「下拉框控件」,右边属性面板选择「属性>数据字典」,点击数据字典「编辑」按钮,弹出数据字典设置对话框。数据字典的类型设置为数据库表,数据库为 FRDemo ,选择数据库表为销量,列名实际值和显示值都为地区。如下图所示:
注:控件绑定数据字典时,当数据集中有和控件同名的参数时,不要使用,否则将造成循环引用,使得模板出错,如此处 ds1 。

6)点击「标签控件」,将控件值命名为地区:。
7)将查询按钮往左边拖拽,形成紧凑式布局,让控件面板更加美观。再次点击参数面板的「编辑」按钮,完成参数控件的设置。
3.4 效果预览
保存报表,点击「分页预览」查看报表。
下拉框选择「华东」,点击查询,只查询出报表中华东地区的销售信息。

相关文章:
通过使用别名让 SQL 更简短-数据库教程shulanxt.com-帆软软件有限公司
MySQL视频教程导航 https://www.shulanxt.com/database/mysqlvideo/p1 SQL 别名 SQL 别名 通过使用 SQL,可以为表名称或列名称指定别名。 基本上,创建别名是为了让列名称的可读性更强。 列的 SQL 别名语法 SELECT column_name AS alias_name FROM …...
最优化理论分析复习--最优性条件(一)
文章目录 上一篇无约束问题的极值条件约束极值问题的最优性条件基本概念只有不等式约束时 下一篇 上一篇 最优化理论复习–对偶单纯形方法及灵敏度分析 无约束问题的极值条件 由于是拓展到向量空间 R n R^n Rn, 所以可由高数中的极值条件进行类比 一阶必要条件 设函数 f (…...
基于WIFI指纹的室内定位算法matlab仿真
目录 1.算法运行效果图预览 2.算法运行软件版本 3.部分核心程序 4.算法理论概述 4.1WIFI指纹定位原理 4.2 指纹数据库建立 4.3定位 5.算法完整程序工程 1.算法运行效果图预览 2.算法运行软件版本 matlab2022a 3.部分核心程序 .....................................…...
密码学:一文读懂非对称密码体制
文章目录 前言非对称密码体制的保密通信模型私钥加密-公钥解密的保密通信模型公钥加密-私钥解密的保密通信模型 复合式的非对称密码系统散列函数数字签名数字签名满足的三个基本要求先加密还是先签名?数字签名成为公钥基础设施以及许多网络安全机制的基础什么是单向…...
2_工厂设计_工厂方法和抽象工厂
工厂设计模式-工厂方法 1.概念 工厂方法模式(Fatory Method Pattern ) 是指定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行。 在工厂方法模式中用户只需要关心所需产品对应的工厂,…...
k8s之pod进阶
1.k8s的pod重启策略 Always :不论正常退出还是非正常退出都重启deployment的yaml文件只能是always pod的yaml三种模式都可以。 OnFailure:只有状态码非0才会重启,正常退出不重启 Never:正常退出和非正常退出都不重启 容器的退…...
RTTI(运行时类型识别)
RTTI(运行时类型识别) 实验介绍 RTTI 全称 Run Time Type Identification,中文称为 “运行时类型识别”,在程序中使用 typeid 和 dynamic_cast 实现。RTTI 技术允许程序在运行时识别对象的类型。 知识点 typeiddynamic_castRTTI 技术typeid typeid 是 C++ 关键字,用于…...
19.Linux Shell任务控制
文章目录 Linux Shell任务控制1)信号通过键盘生成信号trap 命令捕获信号 2)在后台运行脚本命令后加 & 符使用nohub命令 3)作业控制4)调度优先级nice命令renice 命令 5)定时运行作业at定期执行命令reference 欢迎访问个人网络日志🌹🌹知行空间&#x…...
域名流量被劫持怎么办?如何避免域名流量劫持?
随着互联网不断发展,流量成为线上世界的巨大财富。然而一种叫做域名流量劫持的网络攻击,将会在不经授权的情况下控制或重定向一个域名的DNS记录,导致用户在访问一个网站时,被引导到另一个不相关的网站,从而劫持走原网站…...
java案例知识点
一.会话技术 概念 技术 二.跨域 三.过滤器 四.拦截器...
Arrays 的使用
Arrays 概述 提供了数组操作的相关方法,连接数组和集合 asList 返回指定数组的列表列表和数组的引用位置相同 Integer[] arrs new Integer[] {1,2,3,4,5,6,7,8,9};List<Integer> list Arrays.asList(arrs);System.out.println(list);arrs[5] 100;Syste…...
IDEA中怎么用Postman?这款插件你试试
Postman是大家最常用的API调试工具,那么有没有一种方法可以不用手动写入接口到Postman,即可进行接口调试操作?今天给大家推荐一款IDEA插件:Apipost Helper,写完代码就可以调试接口并一键生成接口文档!而且还…...
基于机器视觉的车牌检测-边缘检测因子的选择
车牌检测概述 车牌识别在检测报警、汽车出入登记、交通违法违章以及移动电子警察方面应用广泛。车牌识别过程为:首先通过摄像头获取包含车牌的彩色图像;然后进行车牌边缘检测,先粗略定位到车牌位置,再精细定位;最后根…...
学习c语言,变种水仙花
利用函数次方pow...
K8S--持久卷(PersistentVolume)的用法
原文网址:K8S--持久卷(PersistentVolume)的用法-CSDN博客 简介 本文介绍K8S的持久卷(PersistentVolume)的用法。 目标:用持久卷的方式将主机的磁盘与容器磁盘映射,安装nginx并运行。 --------------------------------------------------…...
书生·浦语大模型趣味 Demo笔记及作业
文章目录 笔记作业基础作业:进阶作业: 笔记 书生浦语大模型InternLM-Chat-7B 智能对话 Demo:https://blog.csdn.net/m0_49289284/article/details/135412067书生浦语大模型Lagent 智能体工具调用 Demo:https://blog.csdn.net/m0_…...
2024最新前端源码分享(附效果图及在线演示)
分享10款非常有趣的前端特效源码 其中包含css动画特效、js原生特效、svg特效以及小游戏等 下面我会给出特效样式图或演示效果图 但你也可以点击在线预览查看源码的最终展示效果及下载源码资源 粒子文字动画特效 基于canvas实现的粒子文字动画特效 会来回切换设定的文字特效 图…...
Microsoft 365 for Mac激活版(原Office 365)
Microsoft 365 for Mac原office 365,包含Word、Excel、PowerPoint 和 Outlook应用程序,协作办公的最佳首选。 软件下载:Microsoft 365 for Mac激活版下载 Microsoft 365 的一些主要功能包括: office 应用程序:Microsof…...
快乐学Python,Python基础之组织代码「类与对象」
在上一篇文章中,我们了解了函数。这一篇文章我们来了解一下Python中另外一个重要的概念:类与对象。 1、类与对象 (1)类与对象有什么关系? 你可能会奇怪,为什么要叫类与对象呢?是两个不同的东…...
H5的3D游戏开源框架
在H5的3D游戏框架中,Three.js、Babylon.js和Turbulenz是比较受欢迎的选择。 Three.js是一个广泛应用并且功能强大的JavaScript 3D库,可以创建简单的3D动画到创建交互的3D游戏。 Babylon.js是David Catuhe对3D游戏引擎热爱的结果,是最好的Ja…...
React Native在HarmonyOS 5.0阅读类应用开发中的实践
一、技术选型背景 随着HarmonyOS 5.0对Web兼容层的增强,React Native作为跨平台框架可通过重新编译ArkTS组件实现85%以上的代码复用率。阅读类应用具有UI复杂度低、数据流清晰的特点。 二、核心实现方案 1. 环境配置 (1)使用React Native…...
三体问题详解
从物理学角度,三体问题之所以不稳定,是因为三个天体在万有引力作用下相互作用,形成一个非线性耦合系统。我们可以从牛顿经典力学出发,列出具体的运动方程,并说明为何这个系统本质上是混沌的,无法得到一般解…...
12.找到字符串中所有字母异位词
🧠 题目解析 题目描述: 给定两个字符串 s 和 p,找出 s 中所有 p 的字母异位词的起始索引。 返回的答案以数组形式表示。 字母异位词定义: 若两个字符串包含的字符种类和出现次数完全相同,顺序无所谓,则互为…...
Spring AI与Spring Modulith核心技术解析
Spring AI核心架构解析 Spring AI(https://spring.io/projects/spring-ai)作为Spring生态中的AI集成框架,其核心设计理念是通过模块化架构降低AI应用的开发复杂度。与Python生态中的LangChain/LlamaIndex等工具类似,但特别为多语…...
优选算法第十二讲:队列 + 宽搜 优先级队列
优选算法第十二讲:队列 宽搜 && 优先级队列 1.N叉树的层序遍历2.二叉树的锯齿型层序遍历3.二叉树最大宽度4.在每个树行中找最大值5.优先级队列 -- 最后一块石头的重量6.数据流中的第K大元素7.前K个高频单词8.数据流的中位数 1.N叉树的层序遍历 2.二叉树的锯…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...
【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制
使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...
C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...
毫米波雷达基础理论(3D+4D)
3D、4D毫米波雷达基础知识及厂商选型 PreView : https://mp.weixin.qq.com/s/bQkju4r6med7I3TBGJI_bQ 1. FMCW毫米波雷达基础知识 主要参考博文: 一文入门汽车毫米波雷达基本原理 :https://mp.weixin.qq.com/s/_EN7A5lKcz2Eh8dLnjE19w 毫米波雷达基础…...
系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文通过代码驱动的方式,系统讲解PyTorch核心概念和实战技巧,涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...
