SQL 查询

使用 ANSI SQL-92 标准来查询 ODBC 数据库和嵌入式数据库。

语句

FactoryTalk Optix Studio
在 SQL 查询中支持以下语句:
  • SELECT
  • DELETE
    小贴士: 可以通过运行
    DELETE
    查询来删除记录。可以使用由相同对象提供的 OPC UA 方法来执行所有其他操作。有关 SQL 语句和子句的更多信息,请参见 SQL 标准。
  • UPDATE
FactoryTalk Optix Studio
在 SQL 查询中对以下语句提供部分支持:
  • CREATE
  • DROP

文本值

支持的文本值
文本值类型
示例
注释
整数
1520
不使用千位分隔符。
使用 Int32 类型。
实数
15.025
.
用作小数分隔符。
使用双精度型。
实数科学
2.7000001072883606E-1
布尔
  • true
  • false
使用小写字母表示布尔值。
字符串
'string value'
使用单引号分隔文本。
在文本字符串中插入单引号 (
'
),方法是使用一个单引号使另一个单引号转义。例如,要编写
'string'
字符串,请在字符串中使用两个单引号
''string''
日期和时间
"2004-05-23T14:25:10.487"
使用以双引号分隔的 ISO8601 格式。
日期和时间表示法采用非标准的 ANSI SQL,可避免使用
DATE
TIME
TIMESTAMP
关键字,以防产生歧义。
常规标识符
  • Column1
  • Grüße
不使用空格。
以大写或小写字母开头。
可使用数字、字母和下划线字符
_
分隔标识符
  • "Water level"
  • "SELECT"
使用双引号 (
"
) 作为分隔符。
在标识符中,使用除
"
字符以外的所有其他字符。
标识符末尾的任何空格都将被忽略。

别名

可以在标识符、派生的列子查询和表中使用别名。
以下是具有别名的查询示例:
SELECT Timestamp AS T FROM Table1 WHERE ...
SELECT * FROM Table1 AS T WHERE ...
SELECT * FROM (SELECT * FROM Table1) AS SubQuery WHERE ...
CREATE TABLE Table1 AS SELECT Timestamp, Column1 FROM Table2

运算符

支持的运算符
操作员
示例
IN
SELECT * FROM Table1 WHERE Column1 IN (10, 20, 30)
BETWEEN
SELECT * FROM Table1 WHERE Column1 BETWEEN 100 AND 200
LIKE
... WHERE column1 LIKE '%a'
... WHERE column1 LIKE '%a%'
... WHERE column1 LIKE '%bbpi!%ppo%' ESCAPE '!'
EXISTS
... WHERE EXISTS (SELECT Table1.Column1 FROM Table2)
IS
... WHERE column1 IS NULL
NOT
... WHERE column1 IS NOT NULL
... WHERE column1 NOT IS (10, 20)
... WHERE column1 NOT BETWEEN 100 AND 200
运算符
NOT
适用于所有其他运算符。

窗口函数

支持的窗口函数
功能
示例
ROW_NUMBER
ROW_NUMBER() OVER (ORDER BY Column2)
ROW_NUMBER() OVER (PARTITION ON Column1 ORDER BY Column2)
ROW_NUMBER() OVER (window_name PARTITION ON Column1 ORDER BY Column2)
RANK
RANK() OVER (PARTITION ON Column1 ORDER BY Column2)
DENSE_RANK
DENSE_RANK() OVER (PARTITION ON Column1 ORDER BY Column2)
AVG
AVG(Column1) OVER (PARTITION BY Column2)
SUM
MIN
MAX
SUM(Column1) OVER (PARTITION BY Column2)
COUNT
COUNT(Column1) OVER (PARTITION BY Column2)
COUNT(*) OVER (PARTITION BY Column2)
提供反馈
对本文档有问题或反馈吗? 请在这里提交您的反馈