Sqlserver與postgreSQL 區(qū)別差異
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
sqlserver----sql語句:
select * from DCS_RISK where 1=1 and SUPERINTENDENT_DPT_ID IN (select ID FROM ORG_DEPARTMENT WHERE CODEPATH LIKE'03.03.%') AND STATUS_NAME ='已確認(rèn)' AND ISNULL(IS_CLOSED,0)=0 ORDER BY FIND_TIME DESC offset 0 rows fetch next 15 rows only
postgresql-----sql語句: select * from "DCS_RISK" where 1=1 and "SUPERINTENDENT_DPT_ID" IN (select "ID" FROM "ORG_DEPARTMENT" WHERE "CODEPATH" LIKE'03.02.%') AND "STATUS_NAME" ='已確認(rèn)' and ("IS_CLOSED" IS NULL OR "IS_CLOSED"=0) ORDER BY "FIND_TIME" DESC offset 0 rows fetch next 15 rows only 區(qū)別: 1. postgresql表名與字段名要用雙引號(hào) 否則將會(huì)變成小寫字符. 解決辦法: 表名 SQLSERVER-> DCS_RISK == POSTGRESQL->”DCS_RISK”; 字段名 SQLSERVER-> STATUS_NAME == POSTGRESQL->”STATUS_NAME” 備注:(sqlserver 表中 表名與字段名上添加“雙引號(hào)”不會(huì)報(bào)錯(cuò) 并且沒有“字符大小寫”控制)。 解決辦法: 表名 SQLSERVER-> DCS_RISK == POSTGRESQL->”DCS_RISK”; 字段名 SQLSERVER-> STATUS_NAME == POSTGRESQL->”STATUS_NAME”備注:(sqlserver 表中 表名與字段名上添加“雙引號(hào)”不會(huì)報(bào)錯(cuò) 并且沒有“字符大小寫”控制)。 2. Sqlserver中ISNULL函數(shù)在postgresql 中是不能使用的! 解決辦法:ISNULL(IS_CLOSED,0)=0 == ("IS_CLOSED" IS NULL OR "IS_CLOSED"=0) 5.PostgreSQL在做條件查詢的時(shí)候是強(qiáng)類型校驗(yàn)的,但是SQL Server是弱類型。也就是說 用數(shù)值類型值 查詢字符類型值 是報(bào)錯(cuò)的 需要用 單引號(hào)包起來呀 反之 用字符串?dāng)?shù)值 查詢 數(shù)組類型值 是不報(bào)錯(cuò)的select * from t_user where code = 77771; // code 是字符類型 77771 是數(shù)據(jù)值型 執(zhí)行就會(huì)報(bào)錯(cuò) 所以要用 ‘77771’ 單引號(hào)包起來 查詢 6.SQL Server的查詢?nèi)绻┪灿锌瞻椎脑挘?/span>SQL Server會(huì)忽略但是PostgreSQL不會(huì)。 7.PostgreSQL和SQL Server的默認(rèn)order by行為是不一致的。order by的字段如果是null,PostgreSQL會(huì)將其放在前面,SQLServer則將其放在后面。 8.SQL Server使用" + “號(hào)來拼接字符串,并且在2012版本之前不支持concat函數(shù)。PostgreSQL使用” || "來拼接字符串,同時(shí)支持concat函數(shù)。 該文章在 2025/8/7 9:18:43 編輯過 |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |