永发信息网

sql新手求助,下面这段要达到什么目的?(+)什么意思? select count(*) from (

答案:2  悬赏:40  手机版
解决时间 2021-01-29 06:38
sql新手求助,下面这段要达到什么目的?(+)什么意思?
select count(*) from
(select distinct id from pids where id='abc') a,
(select distinct id from pids where id='abc' where nvl(b64,0)=1) b,
(select distinct id from pids where id='abc' where nvl(b64,0)<>0) c
where a.id=b.id(+) and a.id=c.id(+) and b.id is not null and c.id is null
最佳答案
简单来说是求和,将pids表中id字段且条件为id=abc的数据去重并查询出数量后命名为a,再将pids表中id字段条件是id为abc且=1的数据去重并查询出数量后命名为b,再将pids表中id字段条件为id=abc且≠0的数据去重并查询出数量后命名为c,最后有一个查询的总条件为a的id字段等于b的id字段(+表示外链接,因为a,b,c为三个表)且等于c的id字段且b的id不为空,且c的id为空。(咳咳,我怎么觉得这代码怪怪的,这是要查啥数据啊,这么纠结,可能有错误,表怪我,谢谢)
全部回答
字段名,表名,数据库名之类作为变量时,必须用动态sql eg: declare @fname varchar(20) set @fname = 'filedname' select @fname from tablename -- 错误,不会提示错误,但结果为固定值filedname,并非所要。 exec('select ' + @fname + ' from tablename') -- 请注意 加号前后的 单引号的边上加空格 当然将字符串改成变量的形式也可 declare @fname varchar(20) set @fname = 'filedname' --设置字段名 declare @s varchar(1000) set @s = 'select ' + @fname + ' from tablename' exec(@s) -- 成功 exec sp_executesql @s -- 此句会报错 declare @s nvarchar(1000) -- 注意此处改为nvarchar(1000) set @s = 'select ' + @fname + ' from tablename' exec(@s) -- 成功 exec sp_executesql @s -- 此句正确 就写这么多了!希望对你有所帮助
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
世纪华联超市怎么去啊,我要去那办事
农村信用合作社(鹳巢分社)地址好找么,我有些
车牌号渝gx3908
在血液循环过程中,血液成份的变化有:含氧多
《遥远时空中》中亚克拉姆喜欢茜吗?
蚕宝宝的意思是什么啊?知道的请说下!
姓氏“智”你知道多少
顺丰快递从惠州寄一台10kg的电脑到东莞要多少
(2013)最概然速率v的物理意义是:A.v是速率分
求一篇石油工程专业提高石油采收率技术论文,
有谁知道河北邢台哪里有维修笔记本电脑的?
为什么仰卧起坐做完第二天肌肉不酸
建设银行(潮安庵埠分理处)地址有知道的么?有
真正的异性朋友是什么样的?
不咱的意思是什么啊?知道的请说下!
推荐资讯
切削的意思是什么啊?知道的请说下!
形容四季的二字词语
唯雅视觉摄影工作室地址有知道的么?有点事想
女人胸部不柔软
我是大四的,刚找到工作 但我没时间做我的毕
青岛夜归人短租之家(五四广场店)地址在什么地
名浪专业美容美体发型设计地址在什么地方,我
窟窿桥的意思是什么啊?知道的请说下!
一年级孩子写作业就哭怎么办
佐蒂美业怎么去啊,我要去那办事
哪种牌子的防蓝光膜效果好些呢?
癜痫病能彻底治好吗
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?