文章 姚 鑫 · 三月 8, 2022 2m read

第七十五章 SQL函数 LEFT

标量字符串函数,返回从字符串表达式的开始(最左位置)开始的指定数量的字符。

大纲

{fn LEFT(string-expression,count)}

参数

  • string-expression - 字符串表达式,它可以是列的名称、字符串字面值或另一个标量函数的结果,其中基础数据类型可以表示为任何字符类型(如CHARVARCHAR)。
  • count - 整数,指定从字符串表达式的起始位置返回的字符数。

描述

LEFT返回从字符串开始的指定字符数。 LEFT不填充字符串; 如果指定的字符数大于字符串中的字符数,则LEFT返回该字符串。 如果传递给任何一个参数一个NULL值,左返回NULL

LEFT只能用作ODBC标量函数(使用花括号语法)。

示例

以下示例返回 Sample.Person 表中每个名称的最左边的七个字符:

SELECT Name,{fn LEFT(Name,7)}AS ShortName
     FROM Sample.Person

以下嵌入式 SQL 示例显示了 LEFT 如何处理比字符串本身长的计数:

/// d ##class(PHA.TEST.SQLCommand).
0
0 109
问题 Michael Lei · 三月 8, 2022

万能的社区我在cache中创建一个视图时遇到了麻烦,其查询方式为:

 

SELECT column1, column2, column 3
    FROM  table
    WHERE
        (column1, columnn 2) IN (SELECT c1, c2 FROM table2 GROUP BY c1)
    ORDER BY column1

 

我认为问题出在where子句上,因为它不能取两列: .

 

具体错误信息为: [SQLCODE: <-1>:<Invalid SQL statement>] [%msg: < ) expected, , found^ (column1,>]

 

请问如何解决? 谢谢!

1
0 258
文章 姚 鑫 · 三月 7, 2022 3m read

第七十四章 SQL函数 LEAST

从一系列表达式中返回最小值的函数。

大纲

LEAST(expression,expression[,...])

参数

  • expression - 解析为数字或字符串的表达式。 将这些表达式的值相互比较,并返回最小值。 表达式可以是字段名、文字、算术表达式、主机变量或对象引用。 最多可以列出140个逗号分隔的表达式。

描述

LEAST从逗号分隔的表达式序列中返回最小值。 表达式按从左到右的顺序求值。 如果只提供一个表达式,则LEAST返回该值。 如果任何表达式为NULL, LEAST返回NULL

如果所有表达式值都解析为规范数,则按数值顺序对它们进行比较。 如果引用的字符串包含规范格式的数字,则按数字顺序对其进行比较。 但是,如果引用的字符串包含非规范格式的数字(例如,'00''0.4''+4'),则将其作为字符串进行比较。 字符串比较按排序顺序逐字符执行。 任何字符串值都大于任何数字值。

空字符串大于任何数字值,但小于任何其他字符串值。

如果返回值是一个数字,LEAST将以规范格式返回它(删除前导和末尾的零,等等)。 如果返回值是一个字符串,LEAST将不改变返回值,包括任何开头或结尾的空格。

LEAST返回逗号分隔的一系列表达式中的最小值。 GREATEST返回逗号分隔的一系列表达式中的最大

0
0 99
Job Rachel You · 三月 7, 2022

公司名称:医元数科技有限公司

职务:软件开发工程师

工作地点:北京或上海

直属上级:技术主管

职责概述:1.负责公司软件产品相关的工作,需求,设计,测试,完成和交付。负责产品需求分析,产品规划。

                    2.了解实际业务,将业务转化为需求

                    3.撰写需求文档,产品原型,协助开发/UI理解和掌握需求,对产品需求方向和业务目标负责

                    4.负责在项目推进过程与研发团队及外包团队的协调沟通工作,确保产品按时完成并高质量上线

                    5.负责跟进产品上线后的异常监控,业务培训,业务需求汇集,完善产品功能,提升系统可用性

核心能力:1.逻辑分析能力  2.沟通和协调能力  3.有业务领域模型的认知  4.良好的跨团队协作能力

工作经验:1.3-5年软件系统开发经验和产品经验

                    2.参与3-5个软件系统项目

                    3.健康医疗行业经验优先

学历/资格要求:1.计算机科学学士学位或等效的相关学位

                              2.项目管理证书

年龄要求:无

有意者请将简历发送至:hr@silvermountain.com.cn

0
0 373
文章 Michael Lei · 三月 6, 2022 3m read

我们所有的工作环境都是Ensemble 2017.2。但我们最近将迁移到IRIS for Health 2021.1版本。这是一个复杂的过程,但经过仔细考虑,我们找到了实现这一目标的方法。

我们有一个开发服务器和两个生产服务器的镜像,采用Failover模式。我们有40多个名称空间在使用中,有些有HL7集成,有些有Soap服务、Rest服务、文件处理......什么都有点。我们需要确定向IRIS的迁移不会出现问题,最重要的是,我们需要不惜一切代价避免服务中断。因此,我们必须做的第一件事是建立一个计划。

0
1 191
文章 姚 鑫 · 三月 6, 2022 2m read

第七十三章 SQL函数 LCASE

将字符串中的所有大写字母转换为小写字母的大小写转换函数。

大纲

LCASE(string-expression)

{fn LCASE(string-expression)}

参数

  • string-expression - 要将其字符转换为小写的字符串表达式。表达式可以是列名、字符串文字或另一个标量函数的结果,其中底层数据类型可以表示为任何字符类型(如CHARVARCHAR)。

描述

LCASE将大写字母转换为小写字母用于显示。 它对非字母字符没有影响。 它保留没有改变的标点符号以及前导和末尾的空格。

LCASE不强制将数字解释为字符串。 SQL将数字转换为规范形式,删除前导和后导零。 SQL不将数字字符串转换为规范形式。

LOWER函数也可以用来将大写字母转换为小写字母。

LCASE不影响排序。 对于不区分大小写的排序规则,%SQLUPPER函数是SQL中转换数据值的首选方法。

示例

下面的例子以小写字母返回每个人的名字:

SELECT TOP 10 Name,{fn LCASE(Name)} AS LowName
     FROM Sample.Person

LCASE也适用于Unicode(非ascii)字母字符,如下面的嵌入式SQL示例所示,它将希腊字母从大写转换为小写:

/// d ##class(PHA.TEST.SQLCommand).
0
0 164
文章 姚 鑫 · 三月 5, 2022 2m read

第七十二章 SQL函数 LAST_IDENTITY

返回最后插入、更新、删除或读取的行的标识的标量函数。

大纲

LAST_IDENTITY()

描述

LAST_IDENTITY函数返回%ROWID局部变量值。在嵌入式SQLODBC中将%ROWID局部变量设置为一个值。动态SQL、SQL Shell或管理门户SQL界面未将%ROWID局部变量设置为值。动态SQL改为设置%ROWID对象属性。

LAST_IDENTITY函数不接受任何参数。请注意,参数括号是必需的。

LAST_IDENTITY返回受当前进程影响的最后一行的标识字段值。如果表没有标识字段,则返回受当前进程影响的最后一行的行ID(%ROWID)。返回值为数据类型INTEGER

  • 对于嵌入式SQL INSERTUPDATEDELETETRUNCATE TABLE语句,LAST_IDENTITY返回最后修改的行的IDENTITY%ROWID值。
  • 对于嵌入式SQL基于游标的SELECT语句,LAST_IDENTITY返回检索到的最后一行的IDENTITY%ROWID值。但是,如果基于游标的SELECT语句包括DISTINCT关键字或GROUP BY子句,则LAST_IDENTITY不会更改;它将返回其先前的值(如果有)。
  • 对于嵌入式SQL单行(非游标)SELECT语句,LAST_IDENTITY不会更改。返回先前的值(如果有)。
0
0 128
文章 姚 鑫 · 三月 4, 2022 2m read

第七十一章 SQL函数 LAST_DAY

日期函数,它为日期表达式返回一个月的最后一天的日期。

大纲

LAST_DAY(date-expression)

参数

  • date-expression - 表达式,它是列的名称、另一个标量函数的结果或日期或时间戳文字。

描述

LAST_DAY以整数形式返回指定月份的最后一天,格式为$HOROLOG。 计算闰年差异,包括世纪日调整:2000是闰年,19002100不是闰年。

日期表达式可以是一个日期整数、一个$HOROLOG$ZTIMESTAMP值、一个ODBC格式的日期字符串或一个时间戳。

日期表达式时间戳可以是数据类型%Library.PosiTime(编码的64位有符号整数)或数据类型%Library.TimeStamp(yyyy-mm-dd hh:mm:ss.fff)

%TIMESTAMP字符串的时间部分是可选的。

指定无效日期时,LAST_DAY返回0(显示模式为12/31/1840):日或月为零;大于12的月;或大于当年该月天数的日。年份必须在00019999之间。

也可以使用lastday()方法调用从ObjectScript调用此函数:

  WRITE $SYSTEM.SQL.Functions.LASTDAY("2018-02-22"),!
  WRITE $SYSTEM.SQL.Functions.
0
0 125
文章 姚 鑫 · 三月 3, 2022 4m read

第七十章 SQL函数 $JUSTIFY

在指定宽度内右对齐值的函数,可以选择舍入到指定的小数位数。

大纲

$JUSTIFY(expression,width[,decimal])

参数

  • expression - 要右对齐的值。它可以是数字值、字符串文字或解析为数字或字符串的表达式。
  • width - 表达式要在其中右对齐的字符数。正整数或计算结果为正整数的表达式。
  • decimal - 可选-小数位数。正整数或计算结果为正整数的表达式。将表达式中的小数位数四舍五入或填充到此值。如果指定DECIMAL,会将表达式视为数字。

描述

$JUSTIFY返回在指定宽度内右对齐的表达式指定的值。可以包括小数参数以在宽度内小数对齐数字。

  • $JUSTUST(expression,width):双参数语法在宽度内右对齐表达式。它不执行任何表达式转换。该表达式可以是数字字符串,也可以是非数字字符串。
  • $JUSTUST(expression,width,decimal):3参数语法将表达式转换为规范数字,将小数位四舍五入或零填充为小数,然后在宽度内右对齐生成的数值。如果表达式是非数字字符串或NULL,会将其转换为0,填充,然后右对齐。

$JUSTIFY识别当前区域设置的DecimalSeparator字符。 它根据需要添加或删除DecimalSeparator字符。

0
0 135
公告 Jeff Liu · 三月 3, 2022

欢迎来到2月22日的社区新闻发布!

我们很高兴为InterSystems的开发者介绍我们全新的社区活动日历:

🎯 https://community.intersystems.com/events 

在这个日历中,你将看到特区活动的历史。了解现在或即将发生的活动,查看过去的活动,并观看社区的网络研讨会和聚会的录音。

让我们仔细看看如何使用它。

0
0 154
文章 Frank Ma · 三月 2, 2022 5m read

好人不需要规则。

神秘博士

要成为日期和时间的主人并不是一件容易的事,在任何编程语言中,这总是一个问题,有时会让人感到困惑,我们将澄清并提出一些提示,使这项任务尽可能简单。

坐上TARDIS,我将把你变成一个时间领主。

Tardis

0
0 837
文章 Frank Ma · 三月 2, 2022 2m read

如果你的嵌入式Python代码调用了 tkinter library库(它被很多图形制作库使用,包括matplotlib),你可能会得到这个错误:

<THROW> *%Exception.PythonException <CLASS DOES NOT EXIST> 230 ^^0^DO ##CLASS(User.Test).Test() 
<class '_tkinter.TclError'>: Can't find a usable init.tcl in the following directories:

c:/intersystems/irispy/lib/python/lib/tcl8.6
c:/intersystems/irispy/lib/tcl8.6
c:/intersystems/lib/tcl8.6
c:/intersystems/irispy/library
c:/intersystems/library
c:/intersystems/tcl8.6.9/library
c:/tcl8.6.9/library

This probably means that Tcl wasn't installed properly.

下面是一个触发这个错误的代码样本:

Class User.Test
{

/// do ##class(User.
0
0 1242
文章 Frank Ma · 三月 2, 2022 3m read

如何检查密码是否足够强大,使其不会很快被破解? 又如何制作一个强大的密码?

我开发了一个工具,可能对这个问题有帮助。你可以在OpenExchange上找到它。用zpm安装。

zpm "install passwords-tool"

这个模块将只安装一个类 caretdev.Passwords中,其中包含一些有用的方法。

安全密码 

要获得一个安全的密码,通常只需使用大写和小写的字母、数字和特殊符号,而且至少要有8个符号的长度。 

Generate方法使用的参数:

  • Length - 只是一个生成密码的长度,默认值为12。
  • IncludeUpperLetter - 包括大写的ASCII字母,如果需要的话是2,默认是1。
  • IncludeLowerLetter - 包括小写ASCII字母,如果需要的话,默认为2。
  • IncludeNumber - 包括数字,如果需要的话,2个,默认为1个。
  • IncludeSymbol - 包括特殊符号,如果需要的话,2个,默认为1个。
USER>w ##class(caretdev.Passwords).Generate(12,1,0,0,0)
FMXRQEQPOVBC
USER>w ##class(caretdev.Passwords).
0
0 198
文章 Frank Ma · 三月 2, 2022 2m read

我们很高兴与你分享有趣的信息,以及告诉你为什么Python是好的,它被用在哪里。

其中使用最多的库是NumPy和Pandas。NumPy(Numerical Python)用来对大型数据集进行分类。它简化了数组上的数学运算及其矢量化。Pandas提供两种数据结构:系列Series(一个元素列表)和数据框架DataFrames(一个有多列的表格)。这个库将数据转换为数据框架,允许你删除和添加新的列,以及执行各种操作。

Python为数据分析项目提供了无数的工具,可以帮助完成任何任务。

0
0 432
文章 Frank Ma · 三月 2, 2022 12m read

各位好,

你曾建立过一个镜像环境吗?它是否有一个私有网络、虚拟IP地址和SSL配置? 在做了几次之后,我意识到这是一个漫长的过程,而且需要很多手动操作来生成证书和配置每个IRIS实例。 对于经常要做这件事的人来说,这是一个痛苦的过程。

例如,质量保证团队可能需要为每个新的应用程序版本创建一个新的镜像环境来测试。支持团队可能需要创建一个镜像环境来重现一个复杂的问题。

我们肯定需要工具来快速创建这些镜像环境。

在这篇文章中,我们将用如下环境创建一个镜像样例:

  • 仲裁机
  • 主服务器
  • 故障切换备份成员
  • 读写报告异步成员
  • 节点间日志转移的SSL配置
  • 镜像环境中的私有网络
  • 虚拟IP地址
  • 镜像数据库

network-schema

乍一看,它似乎有点复杂,看起来需要大量的代码,但不要担心。 在OpenExchange上有一些库,可以轻松地执行大多数操作。

本文的目的是提供一个例子,说明如何根据你的需要调整这个过程,但在安全问题上,它不是一个最佳实践指南。 现在,让我们来创建我们的样本。

工具和库

  • PKI-script: 公钥基础设施(PKI)是一个与IRIS集成的功能,它允许你生成一个自签名的证书并拥有你的授权服务器。在伟大的Pete Greskoff的文章之后,PKI-script的目标是以编程方式执行所有操作,避免在管理门户中进行任何手动操作。 该库包括用于镜像的实用方法。

0
0 557
文章 姚 鑫 · 三月 1, 2022 8m read

第六十九章 SQL函数 JSON_OBJECT

将数据作为JSON对象返回的转换函数。

大纲

JSON_OBJECT(key:value [,key:value][,...] [NULL ON NULL | ABSENT ON NULL])

参数

  • key:value - 键:值对或逗号分隔的键:值对列表。键是由单引号分隔的用户指定的文字字符串。值可以是列名、聚合函数、算术表达式、数字或字符串文字或文字NULL
  • ABSENT ON NULL NULL ON NULL - 可选-指定如何在返回的JSON对象中表示空值的关键字短语。NULL ON NULL(缺省值)表示带有单词NULL(未引号)的NULL(缺少)数据。在NULL上缺失将从JSON对象中省略NULL数据;当valueNULL且不保留占位符逗号时,它将删除key:value对。此关键字短语对空字符串值没有影响。

描述

JSON_OBJECT接受逗号分隔的键:值对列表(例如,‘MyKey’:colname),并返回包含这些值的JSON对象。可以指定任何单引号字符串作为键名;JSON_OBJECT不强制任何命名约定或对键名进行唯一性检查。可以为值指定列名或其他表达式。

JSON_OBJECT可以在SELECT语句中与其他类型的SELECT-Items结合使

0
0 175
文章 姚 鑫 · 二月 28, 2022 5m read

第六十八章 SQL函数 JSON_ARRAY

JSON数组形式返回数据的转换函数。

大纲

JSON_ARRAY(expression [,expression][,...] [NULL ON NULL | ABSENT ON NULL])

参数

  • expression - 表达式或逗号分隔的表达式列表。这些表达式可以包括列名、聚合函数、算术表达式、文字和文字NULL
  • ABSENT ON NULL NULL ON NULL - 可选-指定如何在返回的JSON数组中表示空值的关键字短语。NULL ON NULL(缺省值)表示带有单词NULL(未引号)的NULL(缺少)数据。在NULL上不存在将从JSON数组中省略空数据;它不会保留占位符逗号。此关键字短语对空字符串值没有影响。

描述

Json_array接受表达式或(更常见的)逗号分隔的表达式列表,并返回包含这些值的JSON数组。Json_array可以在SELECT语句中与其他类型的SELECT-Items结合使用。可以在可以使用SQL函数的其他位置指定json_array,例如在WHERE子句中。

返回的JSON数组格式如下:

[ element1 , element2 , element3 ]

Json_array以字符串(用双引号括起来)或数字形式返回每个数组元素值。数字以规范格式返回。

0
0 519
文章 姚 鑫 · 二月 27, 2022 2m read

第六十七章 SQL函数 ISNUMERIC

测试有效数字的数值函数。

大纲

ISNUMERIC(check-expression)

参数

  • check-expression - 要计算的表达式。

ISNUMERIC返回SMALLINT数据类型。

描述

ISNUMERIC计算check-expression并返回下列值之一:

  • 如果check表达式是有效数字,则返回1。有效数字可以是数字表达式,也可以是表示有效数字的字符串。
    • 数值表达式首先转换为规范形式,解析多个前导符号;因此,诸如+-+34这样的数值表达式是有效的数字。
    • 在求值之前不会转换数字字符串。数字字符串最多只能有一个前导符号才能计算为有效数字。带有尾随小数点的数字字符串的计算结果为有效数字。
  • 如果check-expression不是有效数字,则返回0。任何包含非数字字符的字符串都不是有效数字。具有多个前导符号的数字字符串(如‘+-+34’)不会被计算为有效数字。编码列表始终返回0,即使其元素是有效数字也是如此。空字符串ISNUMERIC(‘’)返回0。
  • 如果check-expressionNULL,则返回NULLISNUMERIC(NULL)返回NULL

如果科学记数法指数大于308(308-(整数数-1)),ISNUMERIC会生成SQLCODE-7,指数超出范围错误。

0
0 129
问题 Ren Sicong · 一月 26, 2021

在ensemble使用中遇到过重启组件失败需要强制更新的情况,报错为作业未在10秒内停止,此时需要手动停止报错的作业,或者重新启动production,强制更新是不能解决作业不能及时停止的问题,所以目前对强制更新的使用场景有疑问

In the use of ensemble, when the component fails to restart and needs to be forced to update, the error is that the job has not stopped within 10 seconds. At this time, the error reporting job needs to be stopped manually, or the production needs to be restarted. Forced update can not solve the problem that the job cannot stop in time. Therefore, there are so  me questions about the use scenarios of forced update

2
0 364
文章 姚 鑫 · 二月 26, 2022 3m read

第六十六章 SQL函数 ISNULL

测试NULL并返回相应表达式的函数。

大纲

ISNULL(check-expression,replace-expression)

参数

  • check-expression - 要计算的表达式。
  • replace-expression - Check-ExpressionNULL时返回的表达式。

ISNULL返回与Check-Expression相同的数据类型。

描述

ISNULL计算check-expression并返回以下两个值之一:

  • 如果check-expressionNULL,则返回Replace-Expression
  • 如果Check-Expression不为空,则返回Check-Expression

Replace-Expression的数据类型应该与Check-Expression的数据类型兼容。

请注意,ISNULL函数与NVL函数相同,后者是为了与Oracle兼容而提供的。

日期和时间显示转换

某些检查表达式数据类型需要从逻辑模式转换为ODBC模式或显示模式。例如日期和时间数据类型。如果替换表达式值不是相同的数据类型,则不能在ODBC模式或显示模式下转换此值,并生成SQLCODE错误:日期数据类型为-146;时间数据类型为-147

0
0 91
文章 姚 鑫 · 二月 25, 2022 3m read

第六十五章 SQL函数 %INTERNAL

返回逻辑格式表达式的格式转换函数。

大纲

%INTERNAL(expression)

%INTERNAL expression

参数

  • expression - 要转换的表达式。 字段名、包含字段名的表达式,或返回可转换数据类型(如DATE%List)中的值的函数。

描述

%INTERNAL将表达式转换为逻辑格式,与当前选择模式(显示模式)无关。逻辑格式是数据的内存格式(对其执行操作的格式)。%INTERNAL通常用于选择列表SELECT-ITEM

可以在WHERE子句中使用%INTERNAL,但强烈建议不要使用%INTERNAL,因为使用%INTERNAL会阻止在指定字段上使用索引,并且%INTERNAL会强制所有比较区分大小写,即使该字段有默认排序规则也是如此。

应用%INTERNAL会将列标题名称更改为诸如“Expression_1”之类的值;因此,通常需要指定列名别名,如下面的示例所示。

%INTERNAL将数据类型%DATE的值转换为整数数据类型值。%INTERNAL将数据类型%TIME的值转换为数字(15,9)数据类型值。之所以提供此转换,是因为ODBC或JDBC客户端不识别逻辑%DATE%TIME值。

%INTERNAL是否转换日期取决于日期字段或函数返回的数据类型。

0
0 113
问题 Johnny Wang · 二月 24, 2022

请教各位老师:

Cache数据日志怎么读取?

如果是想写代码去读取,应该怎么操作?如果是不知道数据日志在哪,应该在哪可以获取?

1
0 234
文章 姚 鑫 · 二月 24, 2022 3m read

第六十四章 SQL函数 INSTR

返回子字符串在字符串中的位置的字符串函数,具有可选的搜索起始点和出现次数。

大纲

INSTR(string,substring[,start[,occurrence]])

参数

  • string - 要在其中搜索子字符串的字符串表达式。 它可以是列的名称、字符串字面值或另一个标量函数的结果,其中基础数据类型可以表示为任何字符类型(如CHARVARCHAR2)。
  • substring - 一个子字符串,被认为出现在字符串中。
  • start - 可选-子字符串搜索的起始点,指定为正整数。 从字符串开始的字符计数,从1开始计数。 若要从字符串的开头开始搜索,请忽略此参数或指定从1开始。 起始值为0、空字符串、NULL或非数字值会导致INSTR返回0。 指定start为负数会导致INSTR返回<null>
  • occurrence - 可选-一个非零整数,指定从起始位置搜索时返回哪个子字符串。 默认情况是返回第一个出现的位置。

INSTR返回INTEGER数据类型。

描述

INSTR在字符串中查找子字符串,并返回子字符串的第一个字符的位置。 位置以整数形式返回,从字符串的开头开始计算。 如果substring没有找到,则返回0(0)。 如果传递给任何一个参数一个NULL值,INSTR将返回NULL

INSTR支持指定start作为子字符串搜索的起始点。

0
0 192
文章 Weiwei Gu · 二月 24, 2022 7m read

 

@Ming Zhou 在 https://community.intersystems.com/post/how-get-all-properties-defined-c 上问了一个很好的问题......而这个答案正好总结了为什么ObjectScript 是我最喜欢的语言。

 

当我第一次向别人介绍ObjectScript或IRIS时,我总是解释说,你可以写一个类,编译它,得到一个表,并从对象或关系的角度来处理你的数据--这是一种最自然的方式。

但无论哪种方式,它都只是一个薄薄的包装,包裹着被称为Globals的超级快速的内部数据结构,当你真的需要更快的速度时,你可以使用这些结构。

当我和比较爱较真的技术人员沟通时,我会告诉他们:ObjectScript允许各种炫酷的元编程,因为你可以用完全相同的方式与你刚刚写的类进行交互--从对象或关系的角度。或者在你需要额外的速度时直接使用超快的底层数据结构。

你可以在对这个问题的回答中看到答案: "我怎样才能得到一个类中的所有属性,包括继承的属性?"

这里有三种不同的方式来获得相同的答案。

Class DC.
1
0 365
文章 姚 鑫 · 二月 23, 2022 8m read

第六十三章 SQL函数 IFNULL

测试NULL并返回适当表达式的函数。

大纲

IFNULL(expression-1,expression-2 [,expression-3])

{fn IFNULL(expression-1,expression-2)}

参数

  • expression-1 - 要计算以确定是否为NULL的表达式。
  • expression-2 - 如果expression-1NULL,则返回的表达式。
  • expression-3 - 可选-如果expression-1不是NULL返回的表达式。 如果没有指定expression-3,则当expression-1不是NULL时返回NULL值。

返回的数据类型描述如下。

描述

支持IFNULL作为SQL通用函数和ODBC标量函数。 请注意,虽然这两个执行非常相似的操作,但它们在功能上是不同的。 SQL通用函数支持三个参数。 ODBC标量函数支持两个参数。 SQL通用函数和ODBC标量函数的双参数形式是不一样的; 当expression-1不为空时,它们返回不同的值。

SQL通用函数计算表达式1是否为NULL。 它永远不会返回expression-1:

  • 如果expression-1NULL,则返回expression-2
  • 如果expression-1不为NULL,则返回expression-3
0
0 150