一、连接符(字符串拼接)的区别

Oracle

  • 使用 || 作为连接符

  • 示例:SELECT 'Hello' || ' ' || 'World' FROM dual;

  • 也可以使用 CONCAT() 函数,但只能连接两个字符串

MySQL

  • 使用 CONCAT() 函数作为主要连接方式

  • 示例:SELECT CONCAT('Hello', ' ', 'World');

  • 也支持 ||,但默认情况下它表示逻辑OR,需要设置SQL模式(PIPES_AS_CONCAT)才能作为连接符

SQL Server

  • 使用 + 作为连接符

  • 示例:SELECT 'Hello' + ' ' + 'World';

  • 也支持 CONCAT() 函数(SQL Server 2012及更高版本)

二、数据类型转换的区别

Oracle

  • TO_CHAR(): 将数字或日期转换为字符串

  • TO_NUMBER(): 将字符串转换为数字

  • TO_DATE(): 将字符串转换为日期

  • 示例:

    SELECT TO_CHAR(123.45) FROM dual;
    SELECT TO_NUMBER('123') FROM dual;
    SELECT TO_DATE('2023-01-01', 'YYYY-MM-DD') FROM dual;

    MySQL

  • CAST() 和 CONVERT() 函数

  • 示例:
SELECT CAST(123.45 AS CHAR);
SELECT CONVERT('123', SIGNED INTEGER);
  • 隐式转换较为宽松

SQL Server

  • CAST() 和 CONVERT() 函数

  • CONVERT() 提供更多格式控制选项

  • 示例:

    SELECT CAST(123.45 AS VARCHAR);
    SELECT CONVERT(INT, '123');
    SELECT CONVERT(VARCHAR, GETDATE(), 112); -- 带格式的日期转换
  • TRY_CAST() 和 TRY_CONVERT()(SQL Server 2012+)在转换失败时返回NULL而不是报错。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐