mysql中连接两个字符串常量

如下代码:

        /// <summary>
        /// 获取需求集群分组集合
        /// </summary>
        /// <param name="cityCode"></param>
        /// <param name="indutrySubCode"></param>
        /// <returns></returns>
        public async Task<List<DemandClusterQto>> GetDemandClustersAsync(int? cityCode, Guid? indutrySubCode)
        {
            string sqlStr = @"select sp.Id,sp.title,CONCAT(DATE(MIN(sp.expected_delivery_time)),'至',DATE(MAX(sp.expected_delivery_time))) dateStr,
                                sp.DemandType,sp.IndustryGroup,sp.IndustrySubGroup,sp.IndustrySubGroupName,sp.IndustrySpecific,sp.IndustrySpecificName,
								COUNT(bc.Id) CompanyNum,GROUP_CONCAT(bc.CompanyName) as companyNames,bc.City
                              from supd_demand_info sp 
                              INNER JOIN base_companyinfo bc on sp.CreatorId=bc.UserId 
                              Where sp.IsDeleted=0 and sp.status='Published' and sp.expected_delivery_time > NOW()";

            var sqlPredicate = new List<string>();
            var queryParams = new DynamicParameters();
            if (indutrySubCode.HasValue)
            {
                sqlPredicate.Add(" sp.IndustrySubGroup=@indutrySubCode ");
                queryParams.Add(nameof(indutrySubCode), indutrySubCode);
            }

            if (cityCode.HasValue)
            {
                sqlPredicate.Add("bc.City = @cityCode");
                queryParams.Add(nameof(cityCode), cityCode);
            }

            if (sqlPredicate.Any())
            {
                var sqlPredicatesStr = sqlPredicate.Aggregate((p, n) => $"{p} and {n}");
                sqlStr = @$"{sqlStr} 
                              and {sqlPredicatesStr}";
            }

            sqlStr += " GROUP BY sp.DemandType,sp.title ";
            sqlStr += "  ORDER BY sp.expected_delivery_time desc";

            var connection = await GetDbConnectionAsync();
            var dbTransaction = await GetDbTransactionAsync();
            return (await connection.QueryAsync<DemandClusterQto>(sqlStr, queryParams, dbTransaction)).ToList();
        }

例子 1: 连接两个字符串常量

 
sqlSELECT CONCAT('Hello', ' ', 'World');

这将返回字符串 'Hello World'

例子 2: 连接列的值

假设你有一个名为 users 的表,其中包含 first_namelast_name 两个列,你想要查询完整的姓名:

sqlSELECT first_name, last_name, CONCAT(first_name, ' ', last_name) AS full_name
FROM users;

这将返回每一行的 first_namelast_name 和连接它们中间加上一个空格的 full_name

例子 3: 连接多个列和字符串常量

你还可以将多个列和字符串常量连接在一起:

sqlSELECT CONCAT('User ID: ', id, ', Name: ', full_name) AS user_info
FROM (
SELECT id, CONCAT(first_name, ' ', last_name) AS full_name
FROM users
) AS subquery;

这将返回一个包含用户ID和完整姓名的信息字符串。

例子 4: 使用 CONCAT_WS (带分隔符的连接)

如果你想要用特定的分隔符连接字符串,可以使用 CONCAT_WS 函数(WS 代表 "With Separator"):

sqlSELECT CONCAT_WS(', ', first_name, last_name) AS full_name
FROM users;

这将使用逗号和空格作为分隔符连接 first_namelast_name

在使用 CONCATCONCAT_WS 函数时,如果任何参数是 NULL,则结果也将是 NULL。如果你想要在 NULL 值的情况下返回空字符串或其他默认值,你可以使用 COALESCE 函数或 IFNULL 函数。例如:

sqlSELECT CONCAT(COALESCE(first_name, ''), ' ', COALESCE(last_name, '')) AS full_name
FROM users;

在这个例子中,如果 first_namelast_nameNULLCOALESCE 函数将返回空字符串,从而确保 CONCAT 函数不会返回 NULL

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/559635.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

JWT和Redis比较选型

一、Session 二、JWT 三、比较 基于JWT&#xff08;JSON Web Token&#xff09;和Session身份验证之间的争论是现代 Web 开发中的一个要点。 JWT 身份验证&#xff1a;无状态。服务器生成一个令牌&#xff0c;客户端存储该令牌并随每个请求一起提供&#xff0c;服务端仅需按照…

椭圆曲线密码学(ECC)基本介绍和总结

背景 ECC英文全称"Elliptic Curve Cryptography"&#xff0c;其背后的密码学原理或者说安全性&#xff0c;是基于椭圆曲线离散对数问题&#xff08;Elliptic Curve Discrete Logarithm Problem&#xff0c;ECDLP&#xff09;。ECC密码学被普遍认为是RSA密码系统的接…

有线通信--一文弄懂SPI--(基础篇)

学完很久的通信协议具体内容总是忘记&#xff0c;为了方便自己随时复习以及查看&#xff0c;本人这里总结一份关于SPI的协议详解&#xff0c;分享给大家。 一、什么是SPI 每接触一个协议,我们都要明白它的优缺点&#xff0c;知道它的使用范围和特点&#xff0c;在有这些前置认…

lftp客户端

设置编码 当使用FTP客户端&#xff0c;尤其是命令行界面时&#xff0c;可能会遇到文件名字符集不匹配导致的乱码问题。这通常是因为服务器和客户端使用的编码方式不同&#xff0c;比如一个使用UTF-8&#xff0c;而另一个使用ISO-8859-1或GBK等。 在Linux系统中&#xff0c;如果…

TinyAgent: 尝试Agent入门

最近忙了许多事&#xff0c;终于抽出时间学习一下Agent了&#xff0c;就尝试尝试了Datawhale某不要葱姜蒜作者的大作TingAgent来作为非科班的入门项目。 TinyAgent/Agent.py at master KMnO4-zx/TinyAgent GitHubhttps://github.com/KMnO4-zx/TinyAgent/blob/master/Agent.p…

什么是好用的人才测评系统?

对于企业HR来说&#xff0c;在人才测评是必不可少的工具&#xff0c;什么是好用的人才测评&#xff1f; 1、测评效果靠谱&#xff1b;2、操作实施简便。 人才测评的目的是为找到最适合企业的人选&#xff0c;测评就是一个方法&#xff0c;一个工具&#xff0c;能达到预期目的才…

uniapp——组件多颜色模块展示、气泡框

一、自定义颜色&#xff1a; 样式 代码 <template><view class"content"><!-- 右上角 --><view class"coverStatus" :class"[itemClass, positionClass,cornerClass,sanJiaoCss,sanJiaoCss2]":style"dynamicStyle&q…

<router-link>出现Error: No match for {“name“:“home“,“params“:{}}

在将<a></a>标签换到<router-link></router-link>的时候出现No match for {"name":"home","params":{}}这样的错误&#xff0c;其中格式并无错误&#xff0c; <router-link class"navbar-brand active" …

内存管理(C/C++)

✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅✅ ✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨✨ &#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1f33f;&#x1…

BYOL(NeurIPS 2020)原理解读

paper&#xff1a;Bootstrap your own latent: A new approach to self-supervised Learning third-party implementation&#xff1a;https://github.com/open-mmlab/mmpretrain/blob/main/mmpretrain/models/selfsup/byol.py 本文的创新点 本文提出了一种新的自监督学习方…

Linux配置环境变量_推荐的方式

Linux配置环境变量_推荐以下两种方法&#xff1a; (1)用户环境变量&#xff1a;编辑用户目录下 ~/.bashrc、~/.bash_profile 或 ~/.profile文件 (2)系统环境变量&#xff1a;在/etc/profile.d/目录&#xff0c;创建独立的.sh文件 环境变量脚本文件的执行顺序 /etc/profile-&g…

【Java集合进阶】数据结构(平衡二又树旋转机制)数据结构(红黑树、红黑规则、添加节点处理方案详解)

&#x1f36c; 博主介绍&#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 hacker-routing &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【应急响应】 【Java】 【VulnHub靶场复现】【面试分析】 &#x1f389;点赞➕评论➕收藏 …

记一次 Java 应用内存泄漏的定位过程

问题现象 最近&#xff0c;笔者负责测试的某个算法模块机器出现大量报警&#xff0c;报警表现为机器CPU持续高占用。该算法模块是一个优化算法&#xff0c;本身就是CPU密集型应用&#xff0c;一开始怀疑可能是算法在正常运算&#xff0c;但很快这种猜测就被推翻&#xff1a;同…

如何使用云数据库GaussDB管理平台进行实例安装?

前言 随着数字经济的蓬勃发展&#xff0c;数据库也成为企业的关键技术生产力&#xff0c;也是各行各业数字化转型的必要根基。GaussDB作为新一代分布式数据库&#xff0c;核心代码100%自主创新&#xff0c;具备高可用、高安全、高性能、高弹性、高智能、易部署、易迁移的特性&…

Java作业6-Java类的基本概念三

编程1 import java.util.*;abstract class Rodent//抽象类 {public abstract String findFood();//抽象方法public abstract String chewFood(); } class Mouse extends Rodent {public String findFood(){ return "大米"; }public String chewFood(){ return "…

shm 共享内存

shm 共享内存 0,命令1&#xff0c;了解&#xff1a;2&#xff0c;程序: 0,命令 ipcs 查看分配的共享内存ipcrm -m shmid 删掉分配的共享内存1&#xff0c;了解&#xff1a; 1&#xff09;&#xff0c;进程通信的一种 2&#xff09;&#xff0c;地址映射出来后&#xff0c;就不…

C语言数据结构之顺序表

目录 1.线性表2.顺序表2.1顺序表相关概念及结构2.2增删查改等接口的实现 3.数组相关例题 1.线性表 线性表&#xff08;linear list&#xff09;是n个具有相同特性&#xff08;数据类型相同&#xff09;的数据元素的有限序列。 线性表是一种在实际中广泛使用的数据结构&#xff…

Github 2024-04-20 开源项目日报 Top10

根据Github Trendings的统计,今日(2024-04-20统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量非开发语言项目2Python项目2Swift项目2HTML项目1CSS项目1Go项目1C项目1C++项目1Rust项目1编程面试大学:成为软件工程师的全面学习计划 创建周期…

半导体材料(三)——P-N结和金属-半导体接触

本篇为西安交通大学本科课程《电气材料基础》的笔记。 本篇为这一单元的第三篇笔记&#xff0c;上一篇传送门。 p-n结和金属-半导体接触 p-n结 无偏压开路状态 如图a所示&#xff0c;左边是n型掺杂&#xff0c;右边是p型掺杂&#xff0c;在n区和p区之间形成了一个不连续的…

WARNING: No swap limit support——查看docker状态时提示警告

环境&#xff1a;Ubuntu 20.04 1、警告详情 执行命令 service docker status如下图 2、解决办法 2.1 修改文件 执行命令 vim /etc/default/grub在GRUB_CMDLINE_LINUX中追加cgroup_enablememory swapaccount1&#xff0c;如下&#xff1a; # If you change this file…
最新文章