PostgreSQL和SQL Server不同的语句写法
在PostgreSQL中,使用RETURNING子句来获取插入或更新操作后的结果,而在SQL Server中,使用OUTPUT子句来达到同样的目的。
例如,在PostgreSQL中,您可以这样写插入语句并获取新插入行的ID:
INSERT INTO tablename (column1, column2) VALUES (value1, value2) RETURNING id;在SQL Server中,您会这样写:
INSERT INTO tablename (column1, column2) OUTPUT Inserted.id VALUES (value1, value2);另一个不同点是在PostgreSQL中使用::来进行类型转换,而在SQL Server中使用CAST函数。
例如,在PostgreSQL中,您可以这样进行类型转换:
SELECT '123'::INT;在SQL Server中,您会这样写:
SELECT CAST('123' AS INT);PostgreSQL中使用CREATE TABLE AS来创建表的副本,而在SQL Server中,您会使用SELECT INTO。
例如,在PostgreSQL中,您可以这样复制表结构和数据:
CREATE TABLE new_table AS TABLE existing_table;在SQL Server中,您会这样做:
SELECT * INTO new_table FROM existing_table;PostgreSQL中使用::进行类型转换,而在SQL Server中使用CAST函数。
例如,在PostgreSQL中,您可以这样写:
SELECT '2023-01-01'::DATE;在SQL Server中,您会这样写:
SELECT CAST('2023-01-01' AS DATE);PostgreSQL中使用SERIAL作为自增字段的类型,而在SQL Server中使用IDENTITY。
例如,在PostgreSQL中,您可以这样创建一个自增主键:
CREATE TABLE tablename (
id SERIAL PRIMARY KEY,
column1 VARCHAR(50)
);在SQL Server中,您会这样写:
CREATE TABLE tablename (
id INT IDENTITY(1,1) PRIMARY KEY,
column1 VARCHAR(50)
);PostgreSQL中使用||进行字符串拼接,而在SQL Server中使用+。
例如,在PostgreSQL中,您可以这样拼接字符串:
SELECT 'Hello' || ' ' || 'World';在SQL Server中,您会这样写:
SELECT 'Hello' + ' ' + 'World';PostgreSQL中使用::进行类型转换,而在SQL Server中使用CAST函数。
例如,在PostgreSQL中,您可以这样写:
SELECT '123'::FLOAT;在SQL Server中,您会这样写:
SELECT CAST('123' AS FLOAT);PostgreSQL中使用&&来检查两个范围是否有重叠,而在SQL Server中使用AND。
例如,在PostgreSQL中,您可以这样写:
SELECT 1 RANGE @@ '[1, 5)' && '[3, 7)';在SQL Server中,您会这样写:
SELECT 1 BETWEEN 3 AND 7;PostgreSQL中使用::进行类型转换,而在SQL Server中使用CAST函数。
例如,在PostgreSQL中,您可以这样写:
SELECT '2023-01-0
评论已关闭