首页 新闻 会员 周边

讲解一下sql

0
悬赏园豆:5 [已解决问题] 解决于 2015-10-10 13:35
exec(' select distinct * from    (select OrganiseUnitID,OrganiseUnitCode,ShortName,ParentOrganiseUnitID, OrganiseUnitType,OrganiseUnitModel,FullName    
from SDMS_OrganiseUnit        
where isDelete=0 and OrganiseUnitCode like '''+@OrganiseUnitCode+'%'' or '+@JoinCompanyCode+') t') 

给我讲解一下sql,尤其是单引号的作用,

dasedqwrw的主页 dasedqwrw | 初学一级 | 园豆:15
提问于:2015-07-31 13:29
< >
分享
最佳答案
0

单引号在这个里面有两个意思,一个是用来标识字符串,另一个是转义字符。

比如 '……like '''+@OrganiseUnitCode+'%''……',如果@OrganiseUnitCode设置的值是'abc',那么拼接出来的字符串就是[……like 'abc%'……]

收获园豆:2
小白菜T | 小虾三级 |园豆:564 | 2015-08-01 16:53
其他回答(7)
0

单引号就是标识字符串,没什么作用

吴瑞祥 | 园豆:29449 (高人七级) | 2015-07-31 14:22
0

我怎么感觉单引号那一块错了呢

sql的大体意思是:从 SDMS_OrganiseUnit表中 查出OrganiseUnitID,OrganiseUnitCode,ShortName,ParentOrganiseUnitID,OrganiseUnitType,OrganiseUnitModel,FullName这些字段  条件是 isDelete=0 并且 OrganiseUnitCode的内容 是以@OrganiseUnitCode开头的 或者 @OrganiseUnitCode 然后去重复

at小怪兽 | 园豆:760 (小虾三级) | 2015-07-31 14:27
0

sql处理过程:

1)select OrganiseUnitID,OrganiseUnitCode,ShortName,ParentOrganiseUnitID, OrganiseUnitType,OrganiseUnitModel,FullName from SDMS_OrganiseUnit where isDelete=0 and OrganiseUnitCode like '''+@OrganiseUnitCode+'%'' or '+@JoinCompanyCode+'

这句是将符合查询条件的搜索结果聚合

2)select distinct * from (   1过程的搜索结果   ) t

这句话是将搜索结果去重复 

like ''' 后面跟的不是单引号,而是在执行字符串的拼接,将外部参数@OrganiseUnitCode引入到sql语句中,后面的+@JoinCompanyCode+ 也是把外部参数值拼接到要执行的sql字符串中

收获园豆:2
牧师/preacher | 园豆:500 (菜鸟二级) | 2015-07-31 15:29
0

自己看相关的数据库原理的书籍。关于select 的用法

类菌体 | 园豆:271 (菜鸟二级) | 2015-08-01 14:05
0

推荐去看看SQL的语法,做开发SQL是必须会的

稳稳的河 | 园豆:4216 (老鸟四级) | 2015-08-03 11:34
0

楼主就是前几天问单引号那个人吗?

gw2010 | 园豆:1487 (小虾三级) | 2015-08-03 16:48
0

执行括号里面的SQL语句(查找SDMS_OrganiseUnit,并去掉重复项)

其实单引号就是@OrganiseUnitCode,@JoinCompanyCode 传入的可能是字符串类型,需要用单引号括起来.

收获园豆:1
嗷大喵学编程 | 园豆:165 (初学一级) | 2015-08-04 11:49
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册