17、SQL Server:动态SQL拼接字符串,使用变量,函数等5
2017-02-23 19:43
225 查看
(1)直接字符串
如果需要在动态SQL语句中使用空格或者字符串必须使用转义单引号
例如:declare @sql varchar(500)
set @sql = 'select xxx from xxx where isnull(CustomCName, '''') <> ''xxx'''
这里,空格和字符串均使用双引号即可
(2)间接字符串
有时候必须将datetime类型或者int类型的参数放入动态SQL中,此时这些参数必须通过字符串转换函数转换为字符串
比如datetime类型的@StartDate参数:
set @sql = 'select xxx from xxx where DataDate >= ''' + convert(varchar(10), @StartDate, 120) + ''''
int类型的
set @sql = 'select xxx from xxx where cast(day(StartDate) as varchar(5)) < cast(day(EndDate) as varchar(5))'
或者
set @sql = 'select xxx from xxx where convert(varchar(5),day(StartDate)) < convert(varchar(5),day(EndDate)) '
同样道理,如果碰到函数,只需要将函数结果转化为字符串就行
如果需要在动态SQL语句中使用空格或者字符串必须使用转义单引号
例如:declare @sql varchar(500)
set @sql = 'select xxx from xxx where isnull(CustomCName, '''') <> ''xxx'''
这里,空格和字符串均使用双引号即可
(2)间接字符串
有时候必须将datetime类型或者int类型的参数放入动态SQL中,此时这些参数必须通过字符串转换函数转换为字符串
比如datetime类型的@StartDate参数:
set @sql = 'select xxx from xxx where DataDate >= ''' + convert(varchar(10), @StartDate, 120) + ''''
int类型的
set @sql = 'select xxx from xxx where cast(day(StartDate) as varchar(5)) < cast(day(EndDate) as varchar(5))'
或者
set @sql = 'select xxx from xxx where convert(varchar(5),day(StartDate)) < convert(varchar(5),day(EndDate)) '
同样道理,如果碰到函数,只需要将函数结果转化为字符串就行
相关文章推荐
- SQl Server 动态SQL给变量赋值 和OBJECTPROPERTY函数使用及判断表 存储过程 视图等是否存在
- MySQL中limit使用动态参数的解决方法(拼接SQL字符串语句来执行SQL)
- sql server执行动态拼接sql(带传参数)和去掉小数点后0的函数
- Sql Server游标使用 exec函数执行动态sql
- SQL Server 动态SQL使用(处理输入和输出变量)
- sql中保留一位小数的百分比字符串拼接,替换函数,换行符使用
- SQL server 动态SQL对变量讲行赋值
- SQL server 动态SQL对变量讲行赋值
- 不使用动态解析包处理动态拼接的sql
- 妙用 T-SQL: PARSENAME 函数 (也可不使用该函数,鸣谢"小杰") 实现按指定分隔符拆分字符串 SplitString
- 游标变量、动态sql及变量绑定的使用
- 动态sql语句基本语法(字段名,表名,数据库名之类作为变量时,必须用动态SQL如ALTER TABLE中使用程序传递的参数)
- [SQL Server] 动态sql给变量赋值(或返回值给变量)
- [SQL SERVER]使用 STR()函数将数值转换为字符串类型, 并避免指数形式
- Sql常见问题总结二(Sql语句怎么样查询IP,游标去重复,各种函数使用,各种取时间格式,字符串精确排序,超时锁问题)
- 有关pl/sql的游标, 文本拼接和绑定变量使用小心得.
- SQL server 动态SQL对变量讲行赋值
- SQL----动态SQL,连接字符串与变量的问题
- SQL Server : T-SQL中拆分字符串的一个自定义函数
- pl/sql中在where in()子句里怎么使用字符串变量来传递查询条件?