彩票走势图

UniDAC使用教程(十六):条件执行(IF)、文字和标识符

翻译|使用教程|编辑:黄竹雯|2019-04-25 15:37:31.000|阅读 421 次

概述:数据库应用程序使用SQL语句操作数据。除非用户直接输入,否则语句可以采用两种方式构建,在开发期间进行硬编码,或在运行时构建。第一种方式对开发人员来说非常方便,而第二种方式则更灵活。UniDAC可以结合这两种方法,从而达到最佳效果:你可以对在运行时转换为适当语法的SQL语句进行硬编码。本文主要介绍 条件执行(IF)、文字和标识符。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

下载UniDAC最新版本

UniDAC

条件执行(IF)

为了使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函数,敬请期待~


想要购买正版授权,或者获取更多UniDAC相关信息的朋友可以点击" "~


标签:数据库服务器

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@cahobeh.cn


为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP