sql server 中将由逗号“,”分割的一个字符串,转换为一个表,并应用与 in 条件...
select * from tablenmae where id in(1,2,3)
这样的语句和常用,但是如果in 后面的 1,2,3是变量怎么办呢,一般会用字符串连接的方式构造sql语句
string aa="1,2,3"; string sqltxt="select * from tablename where id in ("+aa+")";
然后执行 sqltxt
这样的风险是存在sql注入漏洞。那么如何在 in 的条件中使用变量呢?可以把形如“1,2,3”这样的字符串转换为一个临时表,这个表有一列,3行,每一行存一个项目(用逗号分隔开的一部分)
该函数可以这样写:
create Function StrToTable(@str varchar(1000))Returns @tableName Table( str2table varchar(50))As--该函数用于把一个用逗号分隔的多个数据字符串变成一个表的一列,例如字符串'1,2,3,4,5' 将编程一个表,这个表Beginset @str = @str+','Declare @insertStr varchar(50) --截取后的第一个字符串Declare @newstr varchar(1000) --截取第一个字符串后剩余的字符串set @insertStr = left(@str,charindex(',',@str)-1)set @newstr = stuff(@str,1,charindex(',',@str),'')Insert @tableName Values(@insertStr)while(len(@newstr)>0)beginset @insertStr = left(@newstr,charindex(',',@newstr)-1)Insert @tableName Values(@insertStr)set @newstr = stuff(@newstr,1,charindex(',',@newstr),'')endReturnEnd
然后sql语句就可以这样了
declare str vchar(100) set str='1,2,3' select * from tablename where id in (select str2table from StrToTable(@str) )
转载于:https://www.cnblogs.com/amylis_chen/p/3272808.html
sql server 中将由逗号“,”分割的一个字符串,转换为一个表,并应用与 in 条件...相关推荐
- 在SQL Server中将行有效地转换为列
本文翻译自:Efficiently convert rows to columns in sql server I'm looking for an efficient way to convert ...
- sql server 中将datetime类型转换为date,或者time
sql server 中将datetime类型转换为date,或者time 2008年01月14日 星期一 14:46 这个转换总是记不住,用到的时候就找,现贴上来,以备查用. datetime类型转 ...
- cte公用表表达式_在SQL Server中使用CTE进行插入和更新(公用表表达式)
cte公用表表达式 In CTEs in SQL Server; Querying Common Table Expressions the first article of this series, ...
- ssma迁移助手_如何使用SQL Server迁移助手(SSMA)和SSIS将MySQL表迁移到SQL Server
ssma迁移助手 介绍 (Introduction) In this article, we will demonstrate how to migrate MySQL tables to SQL S ...
- Java黑皮书课后题第6章:*6.23(指定字符的出现次数)使用下面的方法头编写一个方法,找到一个字符串中指定字符的出现次数。编写一个测试程序,提示用户输入一个字符串以及一个字符,显示该字符出现次数
6.23(指定字符的出现次数)使用下面的方法头编写一个方法,找到一个字符串中指定字符的出现次数.编写一个测试程序,提示用户输入一个字符串以及一个字符,显示该字符出现次数 题目 题目描述 破题 代码 运 ...
- Java 把一个InputStream转换为一个BufferedReader
Java 把一个InputStream转换为一个BufferedReader InputStream inputStream = getResources().getAssets().open(&qu ...
- C语言试题三十二之编写函数function,它的功能是:将一个字符串转换为一个整数(不得调用c语言提供的将字符串转换为整数的函数)。
1. 题目 请编写函数function,它的功能是:将一个字符串转换为一个整数(不得调用c语言提供的将字符串转换为整数的函数). 2 .温馨提示 C试题汇总里可用于计算机二级C语言笔试.机试.研究生复 ...
- 输入5个学生的名字(英文),使用冒泡排序按从大到小排序。 提示:涉及到字符串数组,一个字符串是一个一维字符数组;一个 字符串数组就是一个二维字符数组。...
输入5个学生的名字(英文),使用冒泡排序按从大到小排序. 提示:涉及到字符串数组,一个字符串是一个一维字符数组:一个 字符串数组就是一个二维字符数组. #include <stdio.h> ...
- char转化为cstring_C语言100题集合001-将一个数字字符串转换为一个整数
系列文章<C语言经典100例>持续创作中,欢迎大家的关注和支持. 喜欢的同学记得点赞收藏哦- 1 题目 题目:将一个数字字符串转换为一个整数(不得调用C语言中提供的字符串函数进行操作) 例 ...
最新文章
- 学C++,80%都是为了搞竞赛、凑一门语言?网友:莫钓鱼
- kali2018安装教程_Kali Linux + Windows10双系统安装教程
- Workflow WF Reference Links for 2009-03-20
- MySQL 数据库添加数据时为什么会产生外码(外键)约束?原理就是什么?如何解决?
- 浏览器 JavaScript HTTP 库的大比拼:SugerAgent VS Axios
- iphone label初始化碰到的问题
- 【白皮书分享】抖音企业号-服装行业白皮书.pdf(附下载链接)
- 基于Vue.js的表格分页组件
- WebRTC源码架构浅析
- revit二次开发——过滤器基础
- 学习笔记(2):基于.NET/C#开发工控上位机编程基础-PLC电气工程师为什么要学习工控上位机
- Spring ldap ODM
- 我的网站防盗链和屏蔽蜘蛛的iis8.5 web.config功能
- 打开优盘显示要格式化怎么办?
- mysql使用结巴语句_结巴分词 java 高性能实现,是 huaban jieba 速度的 2倍
- 网络OSI(七层模型)
- 网页文字无法复制粘贴到word中怎么办
- Win10 禁用自动更新
- 摊上事儿的网易邮箱和安全圈的那些“防御机制”
- 各大银行ATM跨行取款收费一览表 程序员的切身利益 不得不看啊
热门文章
- 学习成长就到鸿蒙思维,庆国庆,迎中秋,鸿蒙教育享双节99元开启思维之旅!!...
- 对称加密和非对称加密
- 在7分钟内深刻理解咖喱
- javascript案例_如何在JavaScript中使用增强现实-一个案例研究
- node.js的开发流程_Node.js子流程:您需要了解的一切
- 1005 Spell It Right
- 零基础参加java培训哪家机构好
- Python 中常见的配置文件写法
- android上传图片崩溃,导致安卓手机死机的照片拍摄者表示这张照片是无意之举...
- 表白这件事,比解 bug 要难多少?