首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

Tsql 里关于*= 和=*的有关问题

2012-04-19 
Tsql 里关于* 和*的问题在老版的tsql里会出现想* 和*的语句,在本意是在代表左联及右联。我们最近在做DB

Tsql 里关于*= 和=*的问题
在老版的tsql里会出现想*= 和=*的语句,在本意是在代表左联及右联。
我们最近在做DB的升级 要升级到mssql2008。 所以要对老的sp进行修改。
其中一想就是吧*=和=*改为left和right jion。

一般情况下都还好,但有时会遇到比较复杂的语法如下
。。。。。
From table1 pl,
  table2 pe,
  table3 ch,
  table4 cp
 Where (pe.dt >= @dt and
  pe.dt <= @dt_end )
  and (cp.name = ‘source' and
  pe.s *= cp.s)
  and (ch.name = 'status' and
  pe.hr_status_cd *= ch.code)

总感觉怪怪的。
有人可以详细解析一下么?




[解决办法]

SQL code
From table1 pl,  table2 pe,  table3 ch,  table4 cp Where (pe.dt >= @dt and  pe.dt <= @dt_end )  and (cp.name = ‘source' and  pe.s *= cp.s)  and (ch.name = 'status' and  pe.hr_status_cd *= ch.code)'  --===========================================================      from table1 pl  inner join Table2 pe on --??? 这个地方,应该有跟pl的连接关系  left join table3 ch on pe.hr_status_cd = ch.code  left join table4 cp on pe.s = cp.s  where ch.name ='status'  and cp.name ='source'  and pe.dt >=@dt   and pe.dt <=@dt_end
[解决办法]
SQL code
  from table1 pl  inner join Table2 pe on 1=1 --没有明确关系,可以用1=1代替  left join table3 ch on pe.hr_status_cd = ch.code  left join table4 cp on pe.s = cp.s  where ch.name ='status'  and cp.name ='source'  and pe.dt >=@dt   and pe.dt <=@dt_end 

热点排行