美文网首页
sql查询中字符串拼接的问题

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

作者: 住在海边的人_ | 来源:发表于2018-11-13 20:20 被阅读9次

    使用场景:

    在使用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()函数也可以将制定的数据类型转换为另一种数据类型

    举例说明:

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

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

    相关文章

      网友评论

          本文标题:sql查询中字符串拼接的问题

          本文链接:https://www.haomeiwen.com/subject/jbfrfqtx.html