我需要加入一个或两个表。一张桌子有薪水场。所以我也做了一些计算,如果该字段为null意味着它返回0.所以我使用 len()。但我无法访问正确的值。当我在 len()条件之前使用join时,我有一个结果。但是结果id列无法像 1,4,46,89, ......那样。我不知道为什么。
我的查询是,
CAST(SUBSTRING(CAST(o.Budget AS VARCHAR(50)), 0, PATINDEX('%laks%', o.Budget))*100000
+ SUBSTRING(CAST(o.Budget AS VARCHAR(50)), PATINDEX('%laks%', o.Budget) + 4,
patindex('%Thousands%', o.Budget) - PATINDEX('%laks%', o.Budget) - 4)* 1000 AS VARCHAR(50))+')'
FROM requirementsdetailsfororganization o
right Join Requirementsregistereddetails AS r ON r.registereddate=r.registereddate
left join Requirement_Contact_Details as rc ON rc.RequirementID=o.requirementId
**where len(o.Budget)<>0**
在上面的代码中,我使用了这个条件。但为什么它会显示这种类型的价值观。
MY输出:
插入作业( 1 ,85000)
插入作业( 3 ,205000)
插入作业( 4 ,0(空时))
插入作业( 16 ,145000)
插入作业( 18 ,110000)
在上一个结果中,我粗体值是Id。它是无序的,当我使用len()
时,在值范围内会遗漏一些值有人向我提出我的问题吗?
答案 0 :(得分:0)
CAST(SUBSTRING(CAST(o.Budget AS VARCHAR(50)), 0, PATINDEX('%laks%', o.Budget))*100000
+ SUBSTRING(CAST(o.Budget AS VARCHAR(50)), PATINDEX('%laks%', o.Budget) + 4,
patindex('%Thousands%', o.Budget) - PATINDEX('%laks%', o.Budget) - 4)* 1000 AS VARCHAR(50))+')'
FROM requirementsdetailsfororganization o
right Join Requirementsregistereddetails AS r ON r.registereddate=r.registereddate
left join Requirement_Contact_Details as rc ON rc.RequirementID=o.requirementId
where len(isnull(o.Budget, ":D"))<>0