MySql :Concat(str1,str2,str3,.....)

Oracle:Concat(),||

Sql:+   (like '%'+#{fileTitle,jdbcType=NVARCHAR}+'%')

Oracle的CONCAT()只允许两个参数;

换言之,一次只能将两个字串串连起来。不过,在Oracle中,我们可以用'||'来一次串连多个字串。

在SQL语句中经常需要进行字符串拼接,以sqlserver,oracle,mysql三种数据库为例,因为这三种数据库具有代表性。

sqlserver:

select '123'+'456';

oracle:

select '123'||'456' from dual;或select concat('123','456') from dual;

mysql:

select concat('123','456');

注意:SQL Server 2012已新增concat函数,oracle和mysql中虽然都有concat,但是oracle中只能拼接2个字符串,所以建议用||的方式;mysql中的concat则可以拼接多个字符串。

在SQL Server中的“+”号除了能够进行字符串拼接外,还可以进行数字运算,在进行字符串拼接时要小心使用。下面以“Users”表为例,进行详细分析:

2. 数字 + 字符串

2.1 int + varchar

SELECT id + place FROM Users WHERE id = 1;  //提示错误“在将 varchar 值 'bzz' 转换成数据类型 int 时失败”SELECT id + place FROM Users WHERE id = 5;  //提示错误“在将 varchar 值 '102.34' 转换成数据类型 int 时失败”
SELECT id + place FROM Users WHERE id = 4;    //返回int “105”

2.2 decimal + varchar

SELECT *, id + cost  FROM Users WHERE id = 4 OR id = 5;  //返回decimal “102.98”和“104.30”
SELECT *, place + cost FROM Users WHERE id = 1;  //提示错误“从数据类型 varchar 转换为 numeric 时出错。”

由此可见,系统会将字符串varchar类型转化为int,若不能转换则提示错误,转换成功则进行数字计算。

3. 数字 + 数字

数字指的是int、decimal等类型。数字 +  数字,则进行数字相加,若某字段为NULL,则计算结果为NULL。

SELECT *,  uage + cost AS 'uage + cost'  FROM Users

4.字符串 + 字符串

字符串 + 字符串,则直接进行拼接。若某字段为NULL,则计算结果为NULL。

SELECT *, uname + place AS 'uname + place' FROM Users 

5. 使用CAST和CONVERT函数进行类型转换

通过上述实例,可以看出若要使用“+”进行字符串拼接或数字计算,最稳妥的方法是进行类型转换。

  • CAST()函数可以将某种数据类型的表达式转化为另一种数据类型

  • CONVERT()函数也可以将制定的数据类型转换为另一种数据类型

要求:将“678”转化为数值型数据,并与123相加进行数学运算。

SELECT CAST('678' AS INT) + 123;SELECT CONVERT(INT, '678') + 123;

要求:id列和place列进行字符串拼接。

SELECT *, CONVERT(varchar(10), id) + place FROM Users;

字符串拼接后的字符串不能简单作为“筛选字段”

有时,需要列A = 变量1,列B = 变量2的筛选,为了简化SQL语句 列A + 列B = 变量1 + 变量2。这种方法并不完全准确

SELECT * FROM Users WHERE uname + place = 'aabzz';

SELECT * FROM Users WHERE uname = 'aa' AND place = 'bzz';

为了防止上述情况的发生,可以在列A和列B之间加上一个较特殊的字符串。

SELECT * FROM Users WHERE uname + 'rain@&%$man' + place = 'aa' + 'rain@&%$man' + 'bzz'

原文链接:https://www.cnblogs.com/rainman/p/6203065.html#m0

sqlserver 参数化查询 允许为null_1+Null 居然等于 Null相关推荐

  1. mysql不等于null和等于null的写法

    1.表结构 2.表数据  3.查询teacher_name字段不能等于空并且也不能等于空字符 SELECT * FROM sys_teacher WHERE teacher_name IS NOT N ...

  2. sqlserver 参数化查询 允许为null_关于SQL Server的insert执行的秘密(上)一个最简单的insert分析...

    准备工作: 我需要一张User表,这张表有几个字段,还有一个自增长的数字id,表结构如下: 这是一张比现实应用中简单的多的用户表,UserID是自增长字段. 开始执行一个最简单的INSERT: INS ...

  3. 输出stage.displayState等于null原因

    写了一个类,其对象作为child加载到舞台, 这个类里面写了一个全屏函数 输出stage.displayState居然等于null 我trace  root.stage.displayState 依然 ...

  4. 参数化查询 但未提供该参数(将null插入数据库)

    当你是使用参数化查询时为参数赋值时,比如command.Parameters.Add("@a",SqlDbType.Text,30).Value=a;当a=null是将报错: 错参 ...

  5. SqlServer:带IN()子句C#的参数化查询

    目录 介绍 IN()子句帮助类 SQL查询构建 具有实体框架的参数化查询 使用SqlCommand进行参数化查询 数据 数据库,表和数据行 Db连接字符串 其他数据库 一个实用程序类,使用参数化查询在 ...

  6. dapper mysql 多参数查询_使用Dapper进行参数化查询

    在使用Dapper操作Mysql数据库中我介绍了使用dapper进行CURD基本操作,但在示例代码中参数虽然也是通过@开头,但其实不是真正意义的参数化查询,而是拼接sql,这种方式不利于防止sql注入 ...

  7. SQLserver模糊查询

    SQLserver模糊查询 考试的后台监控中,查询考生的登录情况,模糊查询考生信息. 对于根据查询出来的该考试.考场或者班级的所有考生信息,从中进行模糊查询,可以模糊匹配学号.姓名.状态.学院或者专业 ...

  8. SQLServer子查询相关知识笔记

    今天给大家介绍以下SQLServer子查询相关知识,希望对大家能有所帮助! 1.子查询概念介绍 子查询可以嵌套在SELECT.INSERT.UPDATE.DELETE语句或其他子查询语句中的查询,子查 ...

  9. pdo 参数化查询 mysql函数_PDO笔记之参数化查询

    参数化查询解释在这里:Wiki参数化查询 (少有的Wiki中文比英文介绍的要详细的编程条目) PDO中参数化查询主要用到prepare()方法,然后这个方法会返回一个PDOStatement对象,也就 ...

最新文章

  1. 【前沿视点】Web Lab——鼓舞人心的谷歌 Chrome 实验室
  2. tab 触发ajax请求,防止重复发送ajax请求的思索
  3. Oracle 中定位重要(消耗资源多)的SQL
  4. Java中方法的继承以及父类未被子类覆盖的方法调用的问题
  5. 一句话了解 v-show 和 v-if 的区别
  6. bind_param 类怎么写_情感类自媒体怎么写?你不知道的情感类文章4大禁忌!
  7. IDEA切换全屏模式
  8. Dropout与过拟合抑制
  9. C++使用major做变量名的问题
  10. 矩阵理论(三)向量矩阵的求导
  11. Windows 下 cmd 窗口使用 ssh 命令
  12. 单片机74LS138扩展中断
  13. android 系统安装教程视频,PC也能用安卓 X86系统装安卓视频教程
  14. 互联网日报 | 6月3日 星期四 | 华为正式发布HarmonyOS 2;联想会员数突破1.4亿;今年全国高考报名人数1078万...
  15. 北京 | 微信小程序及小游戏开发者线下交流会
  16. Scratch 游戏项目学习法 —— 接苹果(五)把苹果放在顶端
  17. SPSS Modeler 建模前准备—数据平衡与特征选择(指南 第十一章)
  18. 04 Qt音视频多媒体播放器开发,Qt6.2.3 multimedia
  19. 什么是期权,50ETF期权投资要点是什么?
  20. java做一个办公用品管理系统,如何使用办公用品管理系统

热门文章

  1. localparam和parameter的区别
  2. 中国的TD-LTE-Advanced被国际电联确立为4G标准!
  3. 强行分类提取特征自编码网络例3
  4. 牛客华为机试第1题python
  5. python三个小题
  6. Kafka-0.10.0.0 集群高可靠实验
  7. java 使用正则表达式过滤HTML中标签
  8. dapper 注意事项之GUID
  9. 2013年工作中遇到的20个问题:181-200
  10. FTPVSFTPD安装和参数说明