MSSQL,MYSQL和POSTGRES數據庫的一些區別

一、字符串連接

1、MSSQL

SELECT 字段1 + '-' + 字段2 FROM TABLE;

2、MYSQL

SELECT CONCAT(字段1,'-',字段2) FROM TABLE;

3、POSTGRES

SELECT 字段1||'-'||字段2 FROM TABLE;

二、SELECT INTO

1、MSSQL和MYSQL

SELECT 字段1... INTO 變量1... FROM

2、POSTGRES

SELECT INTO 變量1 字段1 FROM

如:SELECT INTO strIds ('MANAGER_'||repeat(str0,5 - iLength)||strId);

三、判斷某字段在傳遞的以逗號分開的字符串中

1、MSSQL

SELECT  Kname FROM  Kind WHERE  CHARINDEX(','+RTRIM(LTRIM(Kid))+',',','+@ids+',')>0

2、POSTGRES

SELECT  Kname FROM  Kind WHERE POSITION(','||"Kid"||',' IN ','||ids||',') > 0 ;

四、獲取UTC時間

1、POSTGRES

SELECT INTO strSysTime localtimestamp(0);
SELECT INTO sq date_part('timezone_hour',current_timestamp)||'hours';
SELECT INTO strSysTime (strSysTime - sq );

五、變量聲明

1、MSSQL和MYSQL

DECLARE 在BEGIN END之中

2、POSTGRES

DECLARE 在BEGIN之前,且只能書寫一次

如:

CREATE OR REPLACE FUNCTION "funUpdateGlobalInfoTableConfigureTS"()
RETURNS TRIGGER AS
$$
DECLARE
strSysTime TIMESTAMP;
sq interval;
BEGIN
SELECT INTO strSysTime localtimestamp(0);
SELECT INTO sq date_part('timezone_hour',current_timestamp)||'hours';
SELECT INTO strSysTime (strSysTime - sq );
UPDATE "GlobalInfoTable"
SET
 "ConfigureTS" = strSysTime;
RETURN NULL;
END;
$$LANGUAGE plpgSQL;

六、其他

1、POSTGRES

可以直接返回遊標形式,如;

CREATE OR REPLACE FUNCTION "funSelectInfoFromFTPServerTable"()
RETURNS refcursor AS
$$
DECLARE recordcur refcursor;
BEGIN
OPEN recordcur FOR
SELECT
 "host",
 "port",
 "account",
 "pwd"
FROM
 "FTPServerTable"
ORDER BY "index";
RETURN recordcur;
END;
$$
LANGUAGE PLpgSQL;

數字轉換爲字符串及刪除空格

trim(leading ' ' from ((to_char(0,'9999999999'))))

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章