翻譯|使用教程|編輯:黃竹雯|2019-04-25 15:37:31.000|閱讀 500 次
概述:數據庫應用程序使用SQL語句操作數據。除非用戶直接輸入,否則語句可以采用兩種方式構建,在開發期間進行硬編碼,或在運行時構建。第一種方式對開發人員來說非常方便,而第二種方式則更靈活。UniDAC可以結合這兩種方法,從而達到最佳效果:你可以對在運行時轉換為適當語法的SQL語句進行硬編碼。本文主要介紹 條件執行(IF)、文字和標識符。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
為了使UniSQL更靈活,UniSQL支持將SQL代碼有條件地包含在結果語句中。如下所示:
{if my_macro} STATEMENT_1 {else} STATEMENT_2 {endif}
如果定義了宏 my_macro,則返回 STATEMENT_1,否則表達式的結果是STATEMENT_2 。 例如:
{if Oracle} SELECT * FROM dept {else} SELECT * FROM test.dept {endif}
{else}子句可以省略。 下面是一個更復雜的例子:
SELECT {if Oracle}RowId, {endif} DeptNo, DName FROM dept
請注意,你可以使用嵌套的 {if ...} 結構來繼續分支下去。你也可以使用預定義的宏。
UniDAC為日期,時間戳和帶引號的標識符提供通用語法。它的用法類似于宏的用法。 請注意,此功能不適用于 OLE DB,ODBC 和 DB2 數據提供程序。
日期和時間常數
在日期/時間常量中,日期的部分用連字符分隔,時間部分用冒號分隔,并且在兩個部分之間有空格。下表說明了日期/時間格式:
文字類型 | 格式 | 例子 |
date | yyyy-mm-dd | {date '2006-12-31'} |
time | hh:mm:ss | {time '23:59:59'} |
timestamp | yyyy-mm-dd hh:mm:ss | {timestamp '2006-12-31 23:59:59'} |
以下SQL語句:
SELECT * FROM emp WHERE HIREDATE>{date '1982-01-15'}
在MySQL中為
SELECT * FROM emp WHERE HIREDATE>CAST('1982-01-15' AS DATETIME)
在Oracle中為
SELECT * FROM emp WHERE HIREDATE>TO_DATE('1982-01-15', 'YYYY-MM-DD')
通用引用標識符
所有數據庫服務器都支持對包含空格或點等特殊符號的標識符進行引用。 UniDAC允許普遍包裝標識符,以便引用能適用于每個數據庫服務器。使用以下語法:
"identifier"
例如,表達式“table1”.“field1”在 Oracle 和 PostgreSQL 中變成“table1”.“field1”,在 MS SQL Server 中變成 [table1].[field1],在 MySQL 服務器變成 `table1`.`field1`。 不要混淆單引號,它用于包裝字符串常量。
本文屬于上一篇文章“條件執行(IF)”、“文字和標識符”部分。下一篇文章將為大家帶來注釋和SQL函數,敬請期待~
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn