sql查询中字符串拼接的问题

sql查询中字符串拼接的问题,第1张

使用场景:

在使用spring data jpa中的query进行将多个不同类型的id拼接成一个新的id进行查询时,遇到这个问题,主要原因是这些id的数据类型不统一,有varchar又有int类型,而sql在进行字符串拼接时如果一边是int类型,会将varchar类型转换成int类型结合 + ,类似做加法计算了(个人理解,大概是这么个意思),同样的情况在其他类型的运算中也会遇到吧,大概意思就是不同类型的值进行字符串拼接时,有一些会进行自动类型转换,而有一些在这个过程中会出现问题。因此我们需要手动地进行类型转换,而sql语法中提供了对应地函数,见下文:

将字符串与整数拼接,即varchar拼接int,不同类型间进行字符串拼接时会提示将varchar值xxx转换成数据类型int时失败。

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

因此需要将类型做一个转换,即都转换为varchar类型

sql中类型转换常用函数:

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

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

举例说明:

SQL 字符串拼接直接用+ 号

如下列SQL

声明变量

declare @T nvarchar(50)

declare @T1 nvarchar(50)

set @T='12434'

set @T1='abc'

下面是拼接字符串SQL:

select @T+@T1

结果:12434abc

如果是别的类型,用convert 函数直接转换

如 convert(varchar,'需要转换的数据')


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9815557.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-02
下一篇 2023-05-02

发表评论

登录后才能评论

评论列表(0条)

保存