在《SAP2000过滤器使用规则》中提到,高级过滤的应用需要由用户定义过滤器字符串,用户需要输入的是SQL字符串,它是用于访问和处理数据库的标准计算机语言。应用到高级过滤中的SQL字符串对应于添加SQL WHERE子句的完整SQL
SELECT语句,此语句用来有条件地从表中选取数据。接下来以两组例子说明使用SQL字符串应用高级过滤。
1. 示例1
模型:SAP2000安装目录 > Verification > Analysis Examples > Example 1-024
表格:模型定义 >
Connectivity Data > Joint Coordinates > Table: Joint Coordinates
1.1 选择X坐标大于0的节点
使用SQL字符串"XorR > 0"选择X坐标大于0的所有节点,此高级过滤-SQL字符串的应用如图1所示,过滤结果如图2所示。
图1:示例1.1-SQL字符串
图2:示例1.1-过滤结果
1.2 选择Z坐标大于12且小于14的节点
使用SQL字符串“Z > 12 AND Z < 14”选择Z坐标大于12且小于14的节点,此高级过滤-SQL字符串的应用如图3所示,过滤结果如图4所示。
图3:示例1.2-SQL字符串
图4:示例1.2-过滤结果
2. 示例2
模型:新模型 > 模板 > 三维框架(运行分析)
表格:分析结果 >
Element Output > Frame Output > Table: Element Forces – Frames
通过应用如图5所示的SQL字符串,可以筛选框架单元1和2,且仅包含测站0和荷载工况DEAD的行结果,过滤结果如图6所示。
图5:示例2-SQL字符串
图6:示例2-过滤结果
关于SQL字符串需要注意的是:
① 字母的大小写不影响过滤结果;
② 文本数据必须括在单引号中,数值数据不必,且单引号必须为英文字符;
③ SQL运算符OR和AND前后需要用空格隔开,否则程序提示错误,无法筛选;
④ 示例2中,文本数据(Frame和OutputCase)后面的运算符“=”也可以用“LIKE”替换(注意前后需用空格隔开),但是数值数据(Station)不能用“LIKE”替换。替换后的SQL字符串如图7所示。
图7:示例2-SQL字符串(“LIKE”替换“=”)