Sql 函数传递参数 字符串拼接

这篇具有很好参考价值的文章主要介绍了Sql 函数传递参数 字符串拼接。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

使用场景

一个计算价格的函数,多个存储过程调用,因业务需求经常要新增参数,避免修改函数时程序执行存储过程报错,将多个参数拼接为一个字符串传递文章来源地址https://www.toymoban.com/news/detail-687602.html

   -- 调用函数
   CalcuPrice(UnitPrice,CONCAT('MFQZC=',MFQZC,'&ItemNum=',ItemNum,
   '&AssmCode=',AssmCode))
    
  -- 定义函数
    function [CalcuPrice](
        @UnitPrice decimal(38, 3),		-- 单价
        @ARGS varchar(900)
    )
    returns decimal(38, 3)
    as begin
    /****************************************
	 *	解析参数列
	 ****************************************/
	-- 1、定义接受参数列表的变量
	declare @MFQZC varchar(100),
            @ItemNum varchar(100)/*物料编码*/,
            @AssmCode varchar(100)/*加工件编码*/
	declare @Str0 varchar(100),
            @Str1 varchar(100),
            @Str2 varchar(100)
	-- 2、循环读取键值对
	declare S_subject CURSOR FAST_FORWARD FOR
		select data from dbo.SplitStr(@ARGS,'&');
	open S_subject;
	fetch next from S_subject into @Str0;
	while @@FETCH_STATUS=0
	begin
	    set @Str1= (select data from (select ROW_NUMBER() over (ORDER BY (select 1)) RowNum,data from dbo.SplitStr(@Str0, '=')) a where RowNum=1)
		set @Str2= (select data from (select ROW_NUMBER() over (ORDER BY (select 1)) RowNum,data from dbo.SplitStr(@Str0, '=')) a where RowNum=2)
		if(@Str1='MFQZC')
		begin
			set @MFQZC=@Str2
		end
		else if(@Str1='ItemNum')
		begin
			set @ItemNum=@Str2
		end
		else if(@Str1='AssmCode')
		begin
			set @AssmCode=@Str2
		end
		fetch next from S_subject into @Str0;
	end
	close S_subject;
	deallocate S_subject;
    end;
  -- 接下来就可以用从字符串中解析出来的参数进行后续逻辑处理

到了这里,关于Sql 函数传递参数 字符串拼接的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [SQL挖掘机] - 字符串函数 - lower

    lower函数是mysql中的一个字符串函数,其作用是将给定的字符串转换为小写形式。它接受一个字符串作为参数,并返回一个新的字符串,其中所有的字母字符均被转换为小写形式。 使用lower函数可以帮助我们在字符串处理中实现标准化和规范化。 完整的函数语法如下: 其中,

    2024年02月15日
    浏览(36)
  • spark-sql处理json字符串的常用函数

    整理了spark-sql处理json字符串的几个函数: 1 get_json_object 解析不含数组的 json   2 from_json  解析json 3 schema_of_json 提供生成json格式的方法 4 explode   把JSONArray转为多行 get_json_object(string json_string, string path) :适合最外层为{}的json解析。  第一个参数是json对象变量,也就是含j

    2023年04月08日
    浏览(41)
  • 读SQL学习指南(第3版)笔记11_字符串函数和数值函数

    2.5.3.1. SQL Server 2005还包括varchar(max)数据类型,并建议使用其代替text类型,text类型将在未来的某个版本中被删除 2.9.7.1. 如果使用的是MySQL,可以通过内建函数quote()来实现,该函数会将整个字符串放入引号内并对其中任意的引号/撇号进行转义 2.9.7.2. mysql 2.9.7.3. 在检索数据用

    2024年02月10日
    浏览(44)
  • 在 SQL Server 中编写函数以获取年加周的字符串

    在 SQL Server 中,有时候我们需要将日期转换为表示年份和周数的字符串。为了实现这个目标,我们可以编写一个简单的函数。下面是一个示例函数,该函数接受一个日期作为输入,并返回年份和周数的字符串。 在这个函数中,首先使用 YEAR 函数获取输入日期的年份,然后使用

    2024年02月20日
    浏览(58)
  • 在SQL中,可以使用不同的函数来转换字符串日期格式。以下是一些常用的函数:

    1. STR_TO_DATE(): 将字符串转换为日期格式。它接受两个参数:要转换的字符串和日期格式。 示例: 这将把字符串 ‘2023-07-04’ 转换为日期格式,并返回结果作为 converted_date。 2. CAST(): 将字符串转换为日期格式。它接受两个参数:要转换的字符串和目标数据类型。 示例: 这将把

    2024年02月04日
    浏览(59)
  • C语言字符串拼接函数集

    C语言提供了许多用于处理字符串的内置函数。下面是一些常用的C语言字符串函数及其用法的简介: strlen() strlen()函数用于计算字符串的长度。该函数需要一个字符串作为参数,并返回字符串的长度。函数申明如下: 使用示例: 输出内容: strcpy() strcpy()函数用于将一个字符串

    2024年02月04日
    浏览(32)
  • 【C#】Sql Server 设置IN查询方法内的参数,固定参数、动态参数以及通过分隔含有逗号隔开的字符串转数据集

    在平时使用sql语句查询时,in查询肯定少不了,多数用于一些数据统计或者测试类。in查询并不建议放到实际常用的查询列表里。 此篇文章主要简单聊聊,in查询方法内的参数设置方式,以及通过分隔函数将含有逗号隔开的字符串转为数据集进行查询 在 SQL Server 中,你可以使

    2024年02月15日
    浏览(54)
  • 【vue】post请求的参数格式转换为字符串拼接

    我在提交表单的时候,发现一直报500这个错,说是超时,但是我反复查看,并没有什么问题。后来我请求大佬说是请求接口的参数的问题,使用对象JSON的形式就是获取不到,必须是字符串拼接的格式才可以(默默地说,post默认参数是对象JSON格式传递,传字符串拼接的格式是

    2024年02月12日
    浏览(67)
  • FOR XML PATH 函数与同一分组下的字符串拼接

    FOR XML PATH 语句是将查询结果集以XML形式展现,通常情况下最常见的用法就是将多行的结果,拼接展示在同一行。 首先新建一张测试表并插入数据: 查询结果如下: 接下来应用FOR XML PATH的查询结果语句如下: 在查询结果中会出现一个可点击的XML链接,点击后结果如下: 可见

    2024年01月23日
    浏览(65)
  • sql 语句 字段字符串操作

    substring_index() 函数 字符串截取 参考大神博客 replace() 字符串替换 ROUND() 函数 保留多少位小数 参考大神博客 locate() 函数 判断某个字段属性值是否包含某个字符串 concat() 函数 字段属性值连接 case when then else 参考大神博客

    2024年02月13日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包