postgresql和sql server的模糊匹配like是不一樣的,postgresql的like是區分大小寫的,sql server不區分。
測試如下:
//構造資料sql
create
table t_user (
id integer
primary
key,
name varchar(50
)not
null
, code varchar(10
));insert
into t_user values(1
,'zhangsan'
,'77771');
insert
into t_user values(2
,'lisi'
,null
);
將如下sql分別在postgresql和sql server中執行:
select
*from t_user where name like
'%zhang%'
;
postgresql結果:
sql server結果:
如果想讓postgresql的like也不區分大小寫的話,可以使用ilike
select
*from t_user where name ilike '%zhang%'
;
或者使用lower或者upper都轉換成小寫或者大寫再模糊匹配,這種方式的sql兩種資料庫都相容。
select
*from t_user where upper(name)
like upper(
'%zhang%');
select
*from t_user where lower(name)
like lower(
'%zhang%'
);
postgresql在做條件查詢的時候是強型別校驗的,但是sql server是弱型別。
將如下sql分別在postgresql和sql server中執行:
select
*from t_user where code =
77771
;
code是乙個varchar型別的資料。
postgresql結果:
sql server結果:
sql server的查詢如果末尾有空白的話,sql server會忽略但是postgresql不會。
將如下sql分別在postgresql和sql server中執行:
select
*from t_user where code =
'77771 '
;
postgresql結果:
sql server結果:
sql server是能查出資料的,但是postgresql查不出來。
1.postgresql和sql server的預設order by行為是不一致的。
2.order by的字段如果是null,postgresql會將其放在前面,sql server則將其放在後面。
將如下sql分別在postgresql和sql server中執行:
可以看出,查出來的資料的順序是不同的。
某些情況下如果要求資料順序在兩個資料庫中要一致的話,可以在postgresql的查詢sql中增加nulls last來讓null資料滯後。
select
*from t_user order
by code desc nulls last
;
也可以使用case when來統一sql:
orderby(
case
when *** is
null
then
''else *** end
)desc
;
sql server使用" + 「號來拼接字串,並且在2012版本之前不支援concat函式。
postgresql使用」 || "來拼接字串,同時支援concat函式。
//sql server
select
count
(name)
from sys.
tables
where
type
='u'
and name=
't_user'
;//postgresql
select
count
(table_name)
from information_schema.
tables
where table_name=
't_user'
;
Oracle使用dblink連線SqlServer
使用場景 當你需要從oracle資料庫上訪問另一台sqlserver資料庫的資料時,oracle提供了乙個工具 gateways。通過這個工具,你可以建立dblink來連線sqlserver或其他不同公司的資料庫 取決於你安裝時的選項。安裝gateways後,使用下列2種方式可建立dblink 方式...
解除安裝和安裝postgresql
因為postgresql10增強了並行查詢,而postgresql9.6 並行只支援了一部分,現在需要解除安裝pg9.6然後安裝pg10 注意 centos 7 通過yum方式解除安裝和安裝 root 107 rpm qa grep postgresql postgresql96 9.6.10 1p...
postgresql安裝和使用
參考 sudo apt get update sudo apt get install postgresql postgresql client pgadmin3安裝完畢後,系統會建立乙個資料庫超級使用者 postgres,密碼為空。sudo i u postgres這時使用以下命令進入 postg...