orcale和sql server在编写sql语句时的区别
1. 字符串连接:
在Oracle中,您可以使用“||”操作符来连接字符串:
SELECT first_name || ' ' || last_name AS full_name FROM employees;
在SQL Server中,您可以使用“+”操作符来连接字符串:
SELECT first_name + ' ' + last_name AS full_name FROM employees; 2. 获取当前日期和时间:
在Oracle中,使用SYSDATE来获取当前日期和时间:
SELECT SYSDATE FROM dual; 在SQL Server中,使用GETDATE()函数来获取当前日期和时间:
SELECT GETDATE(); 3. 获取顶部/前N行:
在Oracle中,使用FETCH FIRST N ROWS ONLY来获取前N行数据:
SELECT * FROM employees FETCH FIRST 5 ROWS ONLY; 在SQL Server中,使用TOP关键字来获取顶部N行数据:
SELECT TOP 5 * FROM employees; 4. 分页查询:
在Oracle中,使用ROWNUM来实现分页查询:
SELECT * FROM ( SELECT *, ROWNUM AS rnum FROM employees WHERE ROWNUM <= 10 ) WHERE rnum > 5; 在SQL Server中,使用OFFSET和FETCH来实现分页查询:
SELECT * FROM employees ORDER BY employee_id OFFSET 5 ROWS FETCH NEXT 5 ROWS ONLY; 5. 获取自增主键值:
在Oracle中,可以使用RETURNING INTO子句来获取插入后的自增主键值:
INSERT INTO employees (employee_id, first_name, last_name) VALUES (NULL, 'John', 'Doe') RETURNING employee_id INTO :new_id; 在SQL Server中,可以使用SCOPE_IDENTITY()函数来获取插入后的自增主键值:
INSERT INTO employees (first_name, last_name) VALUES ('John', 'Doe'); SELECT SCOPE_IDENTITY();6. 字符串截取:
在Oracle中,使用SUBSTR函数来截取字符串:
SELECT SUBSTR(column_name, start_position, length) AS substring FROM table_name; 在SQL Server中,使用SUBSTRING函数来截取字符串:
SELECT SUBSTRING(column_name, start_position, length) AS substring FROM table_name; 7. 获取最大值和最小值:
在Oracle中,使用MAX和MIN函数来获取最大和最小值:
SELECT MAX(salary) AS max_salary, MIN(salary) AS min_salary FROM employees; 在SQL Server中,同样使用MAX和MIN函数来获取最大和最小值:
SELECT MAX(salary) AS max_salary, MIN(salary) AS min_salary FROM employees; 8. 日期格式化:
在Oracle中,使用TO_CHAR函数来格式化日期:
SELECT TO_CHAR(hire_date, 'YYYY-MM-DD') AS formatted_date FROM employees; 在SQL Server中,使用CONVERT函数来格式化日期:
SELECT CONVERT(VARCHAR, hire_date, 23) AS formatted_date FROM employees; 9. 数据类型转换:
在Oracle中,使用TO_NUMBER、TO_DATE等函数来进行数据类型转换:
SELECT TO_NUMBER('123') AS num_value, TO_DATE('2023-08-13', 'YYYY-MM-DD') AS date_value FROM dual; 在SQL Server中,使用CAST和CONVERT函数来进行数据类型转换:
SELECT CAST('123' AS INT) AS num_value, CONVERT(DATE, '2023-08-13', 23) AS date_value;
浙公网安备 33010602011771号