当前位置: 代码迷 >> Sql Server >> SQL语句剖解
  详细解决方案

SQL语句剖解

热度:31   发布时间:2016-04-24 08:54:17.0
SQL语句剖析
Select  A.LockUser ,MAX(C.NetName) NetName ,
Sum(A.Count) Count,Sum(A.Count*(a.price +a.extra_petrol)) SumMoney From Net_LockTickets A 
Left Join BT_NetUser C On A.LockUser  =C.NetCode 
Where A.Locktime>=@StartTime  And  A.Locktime<@EndTime+1
And A.State='3'  And A.scode Like dbo.dovalue(@stationCode)   And A.LockUser In (@NetCode)
And A.scode In ( Select StattionCode From B_Station Where CityCode In ( Select CityCode From BT_Citey Where AreaCode Like dbo.dovalue(@Area)  ))
And A.scode In (Select  SCode  From  [qspt].[dbo].[StationSysPerson]  Where SysPersonId= @CanQuerySCode)
Group By  A.LockUser Order By  A.LockUser

我想问下这里的like dbo.dovalue是什么意思呢?
------解决思路----------------------
AreaCode LIKE dbo.dovalue(@Area)

1.dbo.dovalue(@Area) 
这个应该是函数,然后输入变量@area,作为这个函数dovalue的参数,会返回一个值

2. areacode like dbo.dovalue(@Area)

其实就是 类似于:

select  * from tb  where areacode like  ‘abcd’
这样子,而abcd 假设是  dbo.dovalue(@Area) 的返回值,就是模糊匹配,这里少了%,可能 在dbo.dovalue(@Area)里会返回%这个字符。

也可以写成这样,都是模糊匹配:

select  * from tb  where areacode like  ‘abcd%’ 或者
select  * from tb  where areacode like  ‘abcd’ +‘%’


------解决思路----------------------
引用:
哦 这是个函数吗?是自定义的还是?


是自定义出来的。
  相关解决方案