拼接sql
‘壹’ sql查询字符串拼接
拼串的时候用char(39) 代替单引号,char(37)代替%
SET @sql = 'SELECT * FROM authors WHERE address LIKE '+char(39)+char(37)+@str+char(37)+char(39)
‘贰’ sql server 怎样拼接sql语句
/*定义变量,然后赋值就可以拼接sql脚本了*/
declare@sqlvarchar(max)
set@sql='select*fromsysobjects'
set@sql=@sql+'wherextype=''u'''
exec(@sql)
‘叁’ sql语句拼接
在多种可变的查询条件下就需要SQL拼接了,比如
StringBuffer sql;
sql=new StringBuffer("SELECT * FROM 表名");
sql.append(" WHERE ");
if(条件1) sql.append(" 字段1='"+条件1+"' AND ");//字段和条件可以自己随意设定
if(条件2) sql.append(" 字段2='"+条件2+"' AND ");//
String finalSQL=sql.toString();
System.out.println(finalSQL);
System.out.println("最后AND位置 "+finalSQL.lastIndexOf(" AND "));
//因为AND拼在每一句最后面,所以有条件成立就肯定有AND 因此要去掉最有一个AND 否则没有AND的情况肯定是 没有任何条件成立 where也可以不要了
finalSQL=finalSQL.substring(0,finalSQL.lastIndexOf(" AND ")>0? finalSQL.lastIndexOf(" AND "):finalSQL.indexOf("WHERE"));
System.out.println(finalSQL);
*注:sql.append(" WHERE "); 就相当于 sql = sql + "where"
‘肆’ 如何实现sql语句的拼接
declare @sql varchar(500)
set @sql ='SELECT * FROM TABLE1'
set @sql = @sql + ' WHERE PRICE>20.00'
set @sql = @sql + ' AND COUNTS>5000'
set @sql = @sql + ' ORDER BY COUNTS DESC'
‘伍’ sql查询语句怎么拼接字符串
--1、在where的地方可以用case
select*
from表1
where字段1=casewhen@字段1>0then@字段1end
--2、或者在赋值的时候做判断用4个参数,你可以根据下面的写法自己修改
@字段1,@字段2,@字段3,@字段
if@字段1>0
begin
select@字段=@字段1
select*
from表1
where字段1=@字段
end
ifif@字段1<0and@@字段2>0
begin
select@字段=@字段2
select*
from表1
where字段1=@字段
end
‘陆’ SQL中如何将两列拼接
主要看两列是什么类型,一般就是数字或者字符,如果都是字符就直接用“+”连接即可,如果是数字的话,需要将数字转成字符再连接。
如,test表,这里id是数字类型
id
name
1
张三
2
李四
现在要将两列连接
select cast(id as varchar)+name as str from test;得到的结果
str
1张三
2李四
如果id列为字符类型
select id+name as str from test;结果同上
‘柒’ SQL怎么拼接数字
把where条件里的单引号去掉试试
你说的int类型是不是number?如果是的话,正常你写select * from user where sid = 123这句是可以检索出来的,但是select * from user where sid = '123',有可能被认为是字符串,那么会把DB中的sid先转成字符串在比较,同样的,如果sid是varchar2类型,而你传入的是123而非‘123’,执行时也会先把sid转成number在比较。其间主要的问题就在于0的处理,如果是varchar2的话,前面是可以有0的,如果是number的话,前面不可以有0但后面可能回事固定的小数位数。不过number和数字比较时,是值相等比较的,不必担心。希望这些对你有用。
‘捌’ SQL拼接,如何把随机数和字段拼接起来
单独一句sql够呛。
创建测试表,插入数据:
createtabletabpart$
(DATAOBJ#varchar2(4));
insertintotabpart$values('1234');
insertintotabpart$values('5678');
insertintotabpart$values('2222');
insertintotabpart$values('3333');
commit;
执行存储过程:
declare
v_randvarchar2(4);
v_strvarchar2(3);
cursorcuris
selectDATAOBJ#fromtabpart$;
begin
opencur;
loop
fetchcur
intov_rand;
exitwhencur%notfound;
selectdbms_random.string('x',3)intov_strfromal;
dbms_output.put_line(v_str||v_rand);
endloop;
closecur;
end;
结果:
每次执行的结果都不一样,如果非要在表里显示,可建立一个表,将这个结果数据插入到表中,就不赘述了。
‘玖’ 拼接SQL语句
sql语句拼接主要操作于条件增加删除修改或查询面给介绍条件查询例:
既拼接sql语句度定用StringBuffer修饰用String
String name=request.getParameter("name");
String address=request.getParemeter("address");
StringBuffer sql = new StringBuffer();
sql.append("select * from Tuser as t where 1=1");
if(name!=null||!"".equals(name)){
sql.append(" and t.name like'%"+name+"%'");
}
if(address!=null||!"".equals(address)){
sql.append(" and t.address like'%"+address+"%'");
}
拼接sql语句说select * from Tuser as t where 1=1定执行面两根据用户数据参数选择执行
我手写啊没复制明白明再问我明白给吧嘿嘿!
‘拾’ SQL怎么拼接字符串
不同的数据库,相应的字符串拼接方式不同,通过对比加深一下记忆。
一、MySQL字符串拼接
1、CONCAT函数
语法格式:CONCAT(char c1, char c2, ..., char cn) ,其中char代表字符串,定长与不定长均可以
连接两个字符串
(10)拼接sql扩展阅读
字符串函数(String processing function)也叫字符串处理函数,指的是编程语言中用来进行字符串处理的函数,如C,pascal,Visual以及LotusScript中进行字符串拷贝,计算长度,字符查找等的函数。
字符串主要用于编程,概念说明、函数解释、用法详述见正文,这里补充一点:字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的,如s=“abcdefghij”,则s[1]=“a”,s[10]="j"。
而字符串的零位正是它的长度,如s[0]=10(※上述功能Ansistring没有。),这可以给我们提供很多方便,如高精度运算时每一位都可以转化为数字存入数组。
字符串函数的应用
1、连接运算 concat(s1,s2,s3…sn) 相当于s1+s2+s3+…+sn.
例:concat(‘11’,'aa’)='11aa’;
2、求子串。 Copy(s,I,I) 从字符串s中截取第I个字符开始后的长度为l的子串。
例:(‘abdag’,2,3)=’bda’
3、删除子串。过程 Delete(s,I,l) 从字符串s中删除第I个字符开始后的长度为l的子串。
例:s:=’abcde’;delete(s,2,3);结果s:=’ae’
4、插入子串。 过程Insert(s1,s2,I) 把s1插入到s2的第I个位置
例:s:=abc;insert(‘12’,s,2);结果s:=’a12bc’
5、求字符串长度 length(s) 例:length(‘12abc’)=5
在ASP中 求字符串长度用 len(s)例: len("abc12")=5
6、搜索子串的位置 pos(s1,s2) 如果s1是s2的子串 ,则返回s1的第一个字符在s2中的位置,若不是子串,则返回0.
例:pos(‘ab’,’12abcd’)=3
7、字符的大写转换。Upcase(ch) 求字符ch的大写体。
例:upcase(‘a’)=’A’
8、数值转换为数串。 过程 Str(x,s) 把数值x化为数串s.
例:str(12345,s); 结果s=’12345’
9、数串转换为数值。 过程val(s,x,I) 把数串s转化为数值x,如果成功则I=0,不成功则I为无效字符的序数,第三个参数也可不传
例:val(‘1234’,x,I);结果 x:=1234