文章
姚 鑫 · 十二月 1 阅读大约需 6 分钟
第二章 SQL谓词的概述(二)

第二章 SQL谓词的概述(二)

谓词和%SelectMode

所有谓词都使用逻辑(内部存储)数据值进行比较。
但是,有些谓词可以对谓词值执行格式模式转换,将谓词值从ODBCDisplay格式转换为Logical格式。
其他谓词不能执行格式模式转换,因此必须始终以Logical格式指定谓词值。

执行格式模式转换的谓词确定是否需要从匹配字段的数据类型(如DATE``%List)进行转换,并确定从%SelectMode设置进行转换的类型。
如果%SelectMode设置为逻辑格式以外的值(例如%SelectMode=ODBC%SelectMode=Display),则必须以正确的ODBC或Display格式指定谓词值。

00
0 0 3
文章
姚 鑫 · 十一月 30 阅读大约需 1 分钟
第一章 SQL谓词的概述(一)

第一章 SQL谓词的概述(一)

描述计算结果为真或假的逻辑条件。

使用谓词

谓词是一个条件表达式,其计算结果为布尔值(truefalse)。

谓词可以如下使用:

00
0 0 4
文章
姚 鑫 · 十一月 28 阅读大约需 2 分钟
第九十章 SQL命令 WHERE CURRENT OF

第九十章 SQL命令 WHERE CURRENT OF

使用游标指定当前行的UPDATE/DELETE子句。

大纲

WHERE CURRENT OF cursor

参数

  • cursor - 指定在光标的当前位置执行操作,光标是指向表的光标。

描述

WHERE CURRENT OF子句可用于基于游标的嵌入式SQL UPDATEDELETE语句,以指定位于要更新或删除记录上的游标。
例如:

   &sql(DELETE FROM Sample.Employees WHERE CURRENT OF EmployeeCursor)

删除最后一个FETCH命令从“EmployeeCursor”游标获得的行。

00
0 0 5
文章
姚 鑫 · 十一月 27 阅读大约需 4 分钟
第八十九章 SQL命令 WHERE(二)

第八十九章 SQL命令 WHERE(二)

相等比较谓词

下面是可用的相等比较谓词:

Predicate Operation
= Equals
<> Does not equal
!= Does not equal
> Is greater than
< Is less than
>= Is greater than or equal to
<= Is less than or equal to

例如:

00
0 0 3
文章
姚 鑫 · 十一月 26 阅读大约需 2 分钟
第八十八章 SQL命令 WHERE(一)

第八十八章 SQL命令 WHERE(一)

指定一个或多个限制性条件的SELECT子句。

大纲

SELECT fields
FROM table
WHERE condition-expression

参数

  • condition-expression - 由一个或多个布尔谓词组成的表达式,该谓词控制要检索的数据值。

描述

可选的WHERE子句可以用于以下目的:

00
0 0 4
文章
姚 鑫 · 十一月 25 阅读大约需 4 分钟
第八十七章 SQL命令 VALUES

第八十七章 SQL命令 VALUES

指定字段中使用的数据值的INSERT/UPDATE子句。

大纲

(field1{,fieldn})
     VALUES (value1{,valuen})

参数

  • field - 字段名或以逗号分隔的字段名列表。
  • value - 值或以逗号分隔的值列表。
    每个值被赋给相应的字段。

描述

VALUES子句用于INSERTUPDATEINSERT or UPDATE语句中,以指定要插入到字段中的数据值。
通常:

00
0 0 5
文章
姚 鑫 · 十一月 24 阅读大约需 2 分钟
第八十六章 SQL命令 USE DATABASE

第八十六章 SQL命令 USE DATABASE

设置当前名称空间和数据库。

大纲

USE [DATABASE] dbname

参数

  • dbname - 当前进程将使用的名称空间和相应的数据库作为当前名称空间。

描述

USE DATABASE命令将当前进程切换到指定的名称空间及其关联的数据库。
这允许在SQL中更改名称空间。
DATABASE关键字是可选的。

指定的dbname是所需的命名空间和包含数据库文件的对应目录的名称。
指定dbname作为标识符。
命名空间名称不区分大小写。

由于USERSQL保留字,因此必须使用分隔标识符来指定用户命名空间,如下面的SQL Shell示例所示:

00
0 0 8
文章
姚 鑫 · 十一月 23 阅读大约需 3 分钟
第八十五章 SQL命令 UPDATE(四)

第八十五章 SQL命令 UPDATE(四)

示例

本节中的示例更新SQLUser.MyStudents表。
下面的示例创建SQLUser.MyStudents表,并用数据填充它。
因为这个示例的重复执行会积累具有重复数据的记录,所以它使用TRUNCATE TABLE在调用INSERT之前删除旧数据。
在调用UPDATE示例之前执行这个示例:

00
0 0 7
文章
姚 鑫 · 十一月 22 阅读大约需 6 分钟
第八十四章 SQL命令 UPDATE(三)

第八十四章 SQL命令 UPDATE(三)

参照完整性

如果没有指定%NOCHECK, IRIS将使用系统范围的配置设置来确定是否执行外键引用完整性检查;
默认值是执行外键引用完整性检查。
可以在系统范围内设置此默认值,如外键引用完整性检查中所述。
要确定当前系统范围的设置,调用$SYSTEM.SQL.CurrentSettings()

此设置不适用于用NOCHECK关键字定义的外键。

UPDATE操作期间,对于每个具有更新字段值的外键引用,都会在被引用表中的旧(更新前)引用行和新(更新后)引用行上获得共享锁。
这些行在执行引用完整性检查和更新行时被锁定。
然后释放锁(直到事务结束才持有锁)。
这确保了引用的行不会在引用完整性检查和更新操作完成之间发生更改。
锁定旧行可以确保在可能的UPDATE回滚之前不会更改所引用的行。
锁定新行可以确保引用的行不会在引用完整性检查和更新操作完成之间发生更改。

00
0 0 4
文章
姚 鑫 · 十一月 21 阅读大约需 9 分钟
第八十三章 SQL命令 UPDATE(二)

第八十三章 SQL命令 UPDATE(二)

显示到逻辑数据转换

数据以逻辑模式格式存储。
例如,日期存储为整数天数,时间存储为从午夜开始的秒数,%List存储为编码字符串。
大多数其他数据,如字符串和数字,不需要转换;
无论当前模式如何,它们都以相同的格式输入、更新和存储。

对于已转换的数据,可以在LOGICAL模式(默认)中更新数据值,或者通过指定选择模式,使用更易于阅读的格式(DISPLAY模式或ODBC模式)更新数据值。
例如,通过指定选择模式,可以以DISPLAY格式(例如2/22/2018)、ODBC格式(例如2018-02-22)或逻辑格式(例如64701)更新日期。
对于某些数据类型,还可以在ODBC或DISPLAY选择模式下以LOGICAL格式指定数据。

00
0 0 2
文章
姚 鑫 · 十一月 16 阅读大约需 4 分钟
第七十八章 SQL命令 TUNE TABLE

第七十八章 SQL命令 TUNE TABLE

基于代表性数据调优表。

大纲

TUNE TABLE tablename [ tune_options ]

参数

  • tablename - 要调优的现有表的名称。
    表名可以是限定的(schema.table),也可以是非限定的(table)。
    非限定表名接受默认模式名。
  • tune_options - 可选—如果指定,一个或多个TUNE TABLE选项,以任意顺序指定,由空格分隔。
    这些tune_options不区分大小写。

描述

TUNE TABLE命令根据表中当前的数据对现有表进行调优。
该数据应该代表表完全填充时所期望的数据。

00
0 0 4
文章
姚 鑫 · 十一月 11 阅读大约需 8 分钟
第七十三章 SQL命令 SET OPTION

第七十三章 SQL命令 SET OPTION

设置执行选项。

大纲

SET OPTION option_keyword = value

描述

SET OPTION语句用于设置执行选项,如编译模式、SQL配置设置和控制日期、时间和数字约定的区域设置。
每个set option语句只能设置一个关键字选项。

SET OPTION支持以下选项:

00
0 0 4

在本文中,我將演示以下內容:

  • 使用自定義實用程序函數從數據庫更新 ReferencesRange(OBX:7) 針對 ObservationIdentifier(OBX:3.1)[TestCode]
  • 根據數據庫實用程序函數中的 ObservationIdentifier(OBX:3.1)[TestCode] 和 ObservationValue(OBX:5)[Result] 更新異常標誌 (OBX:8)
  • 基於異常標誌的路由消息 (OBX:8)

以下是主要和轉換後的 HL7 2.5 ORU_R01 消息:
 

00
0 1 14
文章
姚 鑫 · 十一月 10 阅读大约需 6 分钟
第七十二章 SQL命令 SELECT(四)

第七十二章 SQL命令 SELECT(四)

WHERE子句

WHERE子句限定或取消查询选择中的特定行。
符合条件的行是那些条件表达式为真的行。
条件表达式是逻辑测试(谓词)的列表,可以通过ANDOR逻辑操作符链接这些测试(谓词)。
这些谓词可以使用NOT一元逻辑操作符进行反转。

SQL谓词可分为以下几类:
- Comparison 谓词
- BETWEEN 谓词
- LIKE 谓词
- NULL 谓词
- IN and %INLIST 谓词
- EXISTS 谓词
- FOR SOME 谓词
- FOR SOME %ELEMENT 谓词

00
0 0 3
文章
姚 鑫 · 十一月 9 阅读大约需 8 分钟
第七十一章 SQL命令 SELECT(三)

第七十一章 SQL命令 SELECT(三)

列别名

指定SELECT-ITEM时,可以使用AS关键字指定列名的别名:

SELECT Name AS PersonName, DOB AS BirthDate, ...

列别名在结果集中显示为列标题。指定列别名是可选的;始终提供默认值。列别名以指定的字母大小写显示;但是,当在ORDER BY子句中引用时,它不区分大小写。C别名必须是有效的标识符。C别名可以是分隔的标识符。使用带分隔符的标识符允许列别名包含空格、其他标点符号或作为SQL保留名称。例如,SELECT Name AS "Customer Name" or SELECT Home_State AS "From"

As关键字不是必需的,但使查询文本更易于阅读。因此,以下也是有效的语法:

00
0 0 4
文章
姚 鑫 · 十一月 8 阅读大约需 9 分钟
第七十章 SQL命令 SELECT(二)

第七十章 SQL命令 SELECT(二)

select-item

这是所有SELECT语句的必选元素。
通常,选择项指的是FROM子句中指定的表中的一个字段。
选择项由下列一个或多个项组成,多个项之间用逗号分隔:

  • 列名(字段名),带或不带表名别名:
SELECT Name,Age FROM Sample.Person

字段名不区分大小写。
但是,结果集中与字段关联的标签使用表定义中指定的SqlFieldName的字母大小写,而不是选择项中指定的字母大小写。

00
0 0 8
文章
姚 鑫 · 十一月 6 阅读大约需 4 分钟
第六十八章 SQL命令 SAVEPOINT

第六十八章 SQL命令 SAVEPOINT

在事务中标记一个点。

大纲

SAVEPOINT pointname

参数

  • pointname - 保存点的名称,指定为标识符。

描述

SAVEPOINT语句标记事务中的一个点。建立保存点使能够执行事务回滚到保存点,撤消在此期间完成的所有工作并释放在此期间获得的所有锁。在长期运行的事务或具有内部控制结构的事务中,通常希望能够回滚事务的一部分,而不撤消在事务期间提交的所有工作。

00
0 0 10
文章
姚 鑫 · 十一月 5 阅读大约需 4 分钟
第六十七章 SQL命令 ROLLBACK

第六十七章 SQL命令 ROLLBACK

回滚事务。

大纲

ROLLBACK [WORK]

ROLLBACK TO SAVEPOINT pointname

参数

  • pointname - 作为标识符指定的现有保存点的名称。

描述

ROLLBACK语句将回滚事务,撤消已执行但未提交的工作,减少$TLEVEL事务级别计数器,并释放锁。
ROLLBACK用于将数据库恢复到以前的一致状态。

00
0 0 11