方案一

exec sp_executesql N'
SELECT T0.[WtmCode], T3.[opCode], T3.[opValue], T3.[CondId]
FROM [dbo].[OWTM] T0 INNER JOIN [dbo].[WTM1] T1 ON T1.[WtmCode] = T0.[WtmCode]
INNER JOIN [dbo].[WTM3] T2 ON T2.[WtmCode] = T0.[WtmCode]
INNER JOIN [dbo].[WTM4] T3 ON T3.[WtmCode] = T0.[WtmCode]
WHERE T1.[UserID] = (@P1) AND T2.[TransType] = (@P2) AND T3.[CondId] = (@P3)
AND T0.[Conds] = (@P4) AND T0.[Active] = (@P5) '
,N'@P1 int,@P2 nvarchar(254),@P3 int,@P4 nvarchar(254),@P5 nvarchar(254)',1,N'17',1,N'Y',N'Y'

方案二

IF @UserCmpType='D'
BEGIN
SET @sameContent='FROM dmsSaleOPORPJD T1 '
SET @sameContent2='FROM dmsSaleOPORPJD1 T1 '
SET @sameContent3='FROM dmsSaleOPORPJD2 T1 '
SET @sameContent4='FROM dmsSaleOPORPJD3 T1 '
END ELSE IF @UserCmpType='R'
BEGIN
SET @sameContent='FROM dmsSaleOPORPJR T1 '
SET @sameContent2='FROM dmsSaleOPORPJR1 T1 '
SET @sameContent3='FROM dmsSaleOPORPJR2 T1 '
SET @sameContent4='FROM dmsSaleOPORPJR3 T1 '
END IF @ActionGroup='Approval'
BEGIN
SET @sameContent1='T1.APPStatus=''正在审批'''
END ELSE IF @ActionGroup='ToDelivery'
BEGIN
SET @sameContent1='T1.APPStatus=''已通过'' AND T1.[Status]=''待发货'''
END IF @ActionType='Main'
BEGIN
SET @SQL='
SELECT
T1.ID [Id]
,T1.DOCENTRY [DocEntry]
,T1.CardName [CardName]
,CONVERT(NVARCHAR(10),T1.DocDay,23) [DocDay]
,convert(decimal(18,2),T1.RecDocTotal) [RecDocTotal]
,CASE ISNULL(T1.ShipAddress,'''') WHEN '''' THEN T1.CollectLogistics
ELSE T1.ShipAddress END [ShipAddress]
'+@sameContent+'
WHERE '+@sameContent1+'
AND T1.CmpCode=@UserCmpCode
ORDER BY T1.DocDay ASC
'
END
EXEC SP_EXECUTESQL @stmt=@SQL,@params=N'@ActionGroup NVARCHAR(50),@UserCmpCode NVARCHAR(50),@Id INT'
,@ActionGroup=@ActionGroup,@UserCmpCode=@UserCmpCode,@Id=@Id

标注的SQL拼接语句的更多相关文章

  1. 巧用SQL拼接语句

    前言: 在日常数据库运维过程中,可能经常会用到各种拼接语句,巧用拼接SQL可以让我们的工作方便很多,达到事半功倍的效果.本篇文章将会分享几个日常会用到的SQL拼接案例,类似的SQL还可以举一反三,探索 ...

  2. sql 针对拼接语句的优化

    在日常的开发中尽量少采用拼接语句,但针对多条件联合查询,并有多字段可以偏序的情况下,的确采用拼接语句要方便简单得多,单数据库会因为传入的参数不同而产生不同的计划数,计划数多了,对数据库影响很大. 为了 ...

  3. sql查询语句时怎么把几个字段拼接成一个字段

    sql查询语句时怎么把几个字段拼接成一个字段SELECT CAST(COLUMN1 AS VARCHAR(10)) + '-' + CAST(COLUMN2 AS VARCHAR(10) ...) a ...

  4. MySQL中limit使用动态参数的解决方法(拼接SQL字符串语句来执行SQL)

    官方好像说过limit已经在5.6版本上支持了动态参数,但是测试时依然还是不行. 那么要解决limit动态参数唯一能做的就是使用字符串SQL拼接的形式,然后再进行执行. 一般有以下方式解决: 1.存储 ...

  5. Mybatis.net与MVC入门配置及联合查询动态SQL拼接和简单事务

    第一次学习Mybatis.net,在博客园也找到好多资料,但是在配置成功之后也遇到了一些问题,尤其是在动态SQl拼接时候,这里把遇到的问题还有自己写的一个Demo贴出来,希望能帮到新手,有不适合的地方 ...

  6. SQL拼接方法

    smark Beetle可靠.高性能的.Net Socket Tcp通讯组件 另类SQL拼接方法 在编写SQL的时候经常需要对SQL进行拼接,拼接的方式就是直接String+处理,但这种情况有个不好的 ...

  7. SQL语法语句总结

    一.SQL语句语法 ALTER TABLE ALTER TABLE 用来更新已存在表的结构. ALTER TABLE tablename (ADD|DROP column datatype [NULL ...

  8. 另类SQL拼接方法

    在编写SQL的时候经常需要对SQL进行拼接,拼接的方式就是直接String+处理,但这种情况有个不好的地方就是不能对SQL进行参数化处理.下面介绍一种就算基于String +的方式也可以进行SQL参数 ...

  9. ibatis Dynamic总结(ibatis使用安全的拼接语句,动态查询)

    ibatis中使用安全的拼接语句,动态查询,ibatis比JDBC的优势之一,安全高效 说明文字在注释中 一.引入 一个小例子  <select id="selectAllProduc ...

随机推荐

  1. 微信小程序使用wxParse解析html

    最近项目上遇到在微信小程序里需要显示新闻内容,新闻内容是通过接口读取的服务器中的富文本内容,是html格式的,小程序默认是不支持html格式的内容显示的,那我们需要显示html内容的时候,就可以通过w ...

  2. Log4Net在MVC下的配置以及运用线程队列记录异常信息

    Log4Net是用来记录日志的,可以将程序运行过程中的信息输出到一些地方(文件.数据库.EventLog等),日志就是程序的黑匣子,可以通过日志查看系统的运行过程,从而发现系统的问题.日志的作用:将运 ...

  3. MySQL及其图形界面navicat的安装

    数据库的第一步就是安装MySQL了,基本的安装方法都在这里,所以这里小编整理出来,一方面为了自己复习,一方面也方便大家. (关于MySQL的笔试题,具体见下面博客:http://www.cnblogs ...

  4. MyBatis源码解析(九)——Type类型模块之类型处理器注册器(TypeHandlerRegistry)

    原创作品,可以转载,但是请标注出处地址:http://www.cnblogs.com/V1haoge/p/6709157.html 1.回顾 上一篇研究的是类型别名注册器TypeAliasRegist ...

  5. SHELL脚本--变量(基础)

    bash&shell系列文章:http://www.cnblogs.com/f-ck-need-u/p/7048359.html 变量存在于内存中.假设变量str,设置或修改变量属性时,不带$ ...

  6. .NET CORE实践(1)--Ubuntu下的Hello World

    准备工作 使用Hyper-V安装Ubuntu16.04桌面版 因为是作为类似日记的记录,所以写的时候事无巨细,稍显啰嗦. 打开微软.NET官网 apt-get install 打开dotnetcore ...

  7. 第一次:lesson eighty seven。

    原文: A car crash. A:Is my car ready yet? B:I don't know sir,what's the number of your car? A:It's LFZ ...

  8. .NET MVC后台发送post请求

    一.WebRequest方式 //设置请求接口 var request = (HttpWebRequest)WebRequest.Create("http://xxx.com/xxx&quo ...

  9. mysql使用存储过程&函数实现批量插入

    写这边文章的目的,是想结合mysql 存储过程+函数完成一个批量删除的功能吧...正好也好加深下对procedure和function的熟练操作吧...废话不多说,我就直接上表结构啦哈,如下: cre ...

  10. 【Linux】linux查看日志文件内容命令tail、cat、tac、head、echo

    linux查看日志文件内容命令tail.cat.tac.head.echo tail -f test.log你会看到屏幕不断有内容被打印出来. 这时候中断第一个进程Ctrl-C, ---------- ...