Oracle 查詢常用 SELECT 'x' FROM dual 取得常數;SQL Server 直接 SELECT 'x' 即可,無需 FROM 子句。
| Oracle | SQL Server |
|---|---|
|| | + |
-- Oracle SELECT 'Name' || 'Last' FROM t; -- SQL Server SELECT 'Name' + 'Last';
Oracle TRUNC(15.79, 1) → 15.7 (保留 1 位小數)。
SQL Server 無直對應函數,組合使用:
SELECT ROUND(15.79, 1, 1); -- 第 3 參數 1 表示截斷 SELECT FLOOR(15.79 * 10) / 10.0;
-- Oracle TO_CHAR(123.45, '999999.99') TO_CHAR(expiry_date, 'DDMONYYYY') -- SQL Server STR(123.45, 14, 2) -- 總長 14、小數 2 位 CAST(REPLACE(CONVERT(VARCHAR(12), expiry_date, 106), ' ', '') AS VARCHAR(9))
LENGTH:字元數,NULL 回傳 NULL。LEN:字元數,忽略尾隨空格,NULL 回傳 NULL。DATALENGTH:位元組數,含尾隨空格,NULL 回傳 NULL。|| → +;DUAL 移除。TRUNC(num, n) → ROUND(num, n, 1)。TO_CHAR 格式模板 → CONVERT style 代碼 / FORMAT (2012+)。SYSDATE → GETDATE();NVL → ISNULL/COALESCE。date + n → DATEADD(day, n, date)。