解析判定数据有效性表达式的存储过程 for SQLServer

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介:

INSQL的实时数据有效性判定规则;需要一个比较灵活的定义,我采用了SQL的标准表达式用字符串方式定义到规则内,通过存储过程解析输出断定结果。具体的代码请看下面的内容;


-- =============================================
--
Author: SUIFEI
--
Create date: 2008-8-5
--
Description: 判定规则
--
=============================================
ALTER PROCEDURE [dbo].[MP_JC_DATAISVALID]
@EXPS varchar(4096),--表达式
@RESULT int = null OUT--传出参数:1表示有效,0表示无效
AS
BEGIN
/*
调用演示:
表达式:[YT601_PLAN_YP] BETWEEN 6500 AND 7000, [WQ4_EXPORT_TEMP]>=30
解释:YT601_PLAN_YP 的tag点的数据必须小于或等于 6500 和7000之间,并且WQ4_EXPORT_TEMP点的数据大于或等于20

DECLARE @RESULT INT
EXEC MP_JC_DATAISVALID '[YT601_PLAN_YP] BETWEEN 6500 AND 7000, [WQ4_EXPORT_TEMP]>=30',@RESULT OUT
SELECT @RESULT
*/
/*
定义的数据结构: tag名,参数代码,表达式(采用标准sql表达式)
TAGNAME , PARAMETERCODE , EXPRESSION
A1 1001 NULL
A2 1001 [A1]>100,[A2] BETWEEN 98 AND 102
A3 1001 NULL
*/
SET NOCOUNT ON
--开启本句直接调试: SET @EXPS = '[YT601_PLAN_YP] BETWEEN 6500 AND 7000, [WQ4_EXPORT_TEMP]>=30'
DECLARE @EXP VARCHAR(2048)
DECLARE @R INT
DECLARE @EXPSQL VARCHAR(4096)

SET @R = 0
SET @EXPS = LTRIM(RTRIM(@EXPS))
SET @EXPSQL = ''

IF ( RIGHT(RTRIM(@EXPS),1)<>',') SET @EXPS = @EXPS + ','

select '['+TAGNAME+']' AS TAGNAME,VALUE INTO #tmp FROM LIVE --LIVE表是实时数据表
UPDATE #TMP SET @EXPS =REPLACE(@EXPS, TAGNAME, VALUE)
WHERE CHARINDEX(TAGNAME, @EXPS)<>0
DROP TABLE #TMP

CREATE TABLE #EXPRESSION ( RESULT INT )

WHILE( CHARINDEX(',',@EXPS)<>0 )
BEGIN
SET @EXP = SUBSTRING(@EXPS,1,CHARINDEX(',',@EXPS) -1)
SET @EXPS = SUBSTRING(@EXPS,CHARINDEX(',',@EXPS) +1,LEN(@EXPS))

SET @EXPSQL = 'INSERT INTO #EXPRESSION '+
'SELECT (CASE WHEN (' +
@EXP +
') THEN 1 ELSE 0 END) '
EXEC(@EXPSQL)
PRINT @EXPSQL
END
SELECT @RESULT = MIN(RESULT) FROM #EXPRESSION
DROP TABLE #EXPRESSION
PRINT @RESULT
RETURN @RESULT;
END



本文转自suifei博客园博客,原文链接:http://www.cnblogs.com/Chinasf/archive/2008/09/08/1286768.html,如需转载请自行联系原作者
相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS&nbsp;SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/sqlserver
相关文章
|
1月前
|
存储 SQL 数据库
SQL Server存储过程的优缺点
【10月更文挑战第18天】SQL Server 存储过程具有提高性能、增强安全性、代码复用和易于维护等优点。它可以减少编译时间和网络传输开销,通过权限控制和参数验证提升安全性,支持代码共享和复用,并且便于维护和版本管理。然而,存储过程也存在可移植性差、开发和调试复杂、版本管理问题、性能调优困难和依赖数据库服务器等缺点。使用时需根据具体需求权衡利弊。
|
1月前
|
人工智能 自然语言处理 前端开发
SpringBoot + 通义千问 + 自定义React组件:支持EventStream数据解析的技术实践
【10月更文挑战第7天】在现代Web开发中,集成多种技术栈以实现复杂的功能需求已成为常态。本文将详细介绍如何使用SpringBoot作为后端框架,结合阿里巴巴的通义千问(一个强大的自然语言处理服务),并通过自定义React组件来支持服务器发送事件(SSE, Server-Sent Events)的EventStream数据解析。这一组合不仅能够实现高效的实时通信,还能利用AI技术提升用户体验。
162 2
|
21天前
|
自然语言处理 数据可视化 前端开发
从数据提取到管理:合合信息的智能文档处理全方位解析【合合信息智能文档处理百宝箱】
合合信息的智能文档处理“百宝箱”涵盖文档解析、向量化模型、测评工具等,解决了复杂文档解析、大模型问答幻觉、文档解析效果评估、知识库搭建、多语言文档翻译等问题。通过可视化解析工具 TextIn ParseX、向量化模型 acge-embedding 和文档解析测评工具 markdown_tester,百宝箱提升了文档处理的效率和精确度,适用于多种文档格式和语言环境,助力企业实现高效的信息管理和业务支持。
3960 5
从数据提取到管理:合合信息的智能文档处理全方位解析【合合信息智能文档处理百宝箱】
|
13天前
|
SQL 存储 缓存
SQL Server 数据太多如何优化
11种优化方案供你参考,优化 SQL Server 数据库性能得从多个方面着手,包括硬件配置、数据库结构、查询优化、索引管理、分区分表、并行处理等。通过合理的索引、查询优化、数据分区等技术,可以在数据量增大时保持较好的性能。同时,定期进行数据库维护和清理,保证数据库高效运行。
|
11天前
|
存储 分布式计算 Java
存算分离与计算向数据移动:深度解析与Java实现
【11月更文挑战第10天】随着大数据时代的到来,数据量的激增给传统的数据处理架构带来了巨大的挑战。传统的“存算一体”架构,即计算资源与存储资源紧密耦合,在处理海量数据时逐渐显露出其局限性。为了应对这些挑战,存算分离(Disaggregated Storage and Compute Architecture)和计算向数据移动(Compute Moves to Data)两种架构应运而生,成为大数据处理领域的热门技术。
32 2
|
17天前
|
JavaScript API 开发工具
<大厂实战场景> ~ Flutter&鸿蒙next 解析后端返回的 HTML 数据详解
本文介绍了如何在 Flutter 中解析后端返回的 HTML 数据。首先解释了 HTML 解析的概念,然后详细介绍了使用 `http` 和 `html` 库的步骤,包括添加依赖、获取 HTML 数据、解析 HTML 内容和在 Flutter UI 中显示解析结果。通过具体的代码示例,展示了如何从 URL 获取 HTML 并提取特定信息,如链接列表。希望本文能帮助你在 Flutter 应用中更好地处理 HTML 数据。
99 1
|
28天前
|
存储 SQL 缓存
SQL Server存储过程的优缺点
【10月更文挑战第22天】存储过程具有代码复用性高、性能优化、增强数据安全性、提高可维护性和减少网络流量等优点,但也存在调试困难、移植性差、增加数据库服务器负载和版本控制复杂等缺点。
|
1月前
|
存储 SQL 数据库
Sql Server 存储过程怎么找 存储过程内容
Sql Server 存储过程怎么找 存储过程内容
31 1
|
1月前
|
存储 SQL 数据库
SQL Server存储过程的优缺点
【10月更文挑战第17天】SQL Server 存储过程是预编译的 SQL 语句集,存于数据库中,可重复调用。它能提高性能、增强安全性和可维护性,但也有可移植性差、开发调试复杂及可能影响数据库性能等缺点。使用时需权衡利弊。
|
1月前
|
数据采集 XML 前端开发
Jsoup在Java中:解析京东网站数据
Jsoup在Java中:解析京东网站数据

推荐镜像

更多