Sql server 使用len()sql server时使用联接的正确方法
我需要加入一两个表。一个表包含薪资字段。因此,我也进行了一些计算,如果字段为null,则表示它返回0。所以我使用len()。但我无法访问正确的值。当我使用join beforelen()条件时,我得到了一个结果。但是结果id列的顺序很乱,比如1,4,46,89,…类似的东西。我不知道为什么 我的问题是,Sql server 使用len()sql server时使用联接的正确方法,sql-server,sql-server-2008,join,Sql Server,Sql Server 2008,Join,我需要加入一两个表。一个表包含薪资字段。因此,我也进行了一些计算,如果字段为null,则表示它返回0。所以我使用len()。但我无法访问正确的值。当我使用join beforelen()条件时,我得到了一个结果。但是结果id列的顺序很乱,比如1,4,46,89,…类似的东西。我不知道为什么 我的问题是, CAST(SUBSTRING(CAST(o.Budget AS VARCHAR(50)), 0, PATINDEX('%laks%', o.Budget))*100000 + SUBSTR
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**
CAST(子字符串(CAST(o.Budget为VARCHAR(50)),0,PATINDEX(“%laks%”,o.Budget))*100000
+子字符串(强制转换(o.Budget为VARCHAR(50)),PATINDEX(“%laks%”,o.Budget)+4,
patindex(“%数千%”,o.Budget)-patindex(“%laks%”,o.Budget)-4)*1000作为VARCHAR(50))+“)
来自组织的要求和详细信息o
右连接要求在r.registereddate=r.registereddate上将详细信息注册为r
左侧连接要求\u联系\u详细信息,如rc上的rc.RequirementID=o.RequirementID
**其中len(o.Budget)0**
在上面的代码中,我使用了这个条件。但为什么它会显示这种类型的值
我的输出:
插入到作业中(1,85000)
插入到作业中(3,205000)
插入到作业中(4,0(空时))
插入到作业中(16145000)
插入到作业中(18,110000)
在前面的结果中,我粗体显示的值是Id。在使用len()时,它是无序的,并且在值的范围内缺少一些值
有人向我建议我的问题吗?CAST(子字符串(CAST(o.Budget AS VARCHAR(50)),0,PATINDEX(“%laks%”,o.Budget))*100000
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
+子字符串(强制转换(o.Budget为VARCHAR(50)),PATINDEX(“%laks%”,o.Budget)+4,
patindex(“%数千%”,o.Budget)-patindex(“%laks%”,o.Budget)-4)*1000作为VARCHAR(50))+“)
来自组织的要求和详细信息o
右连接要求在r.registereddate=r.registereddate上将详细信息注册为r
左侧连接要求\u联系\u详细信息,如rc上的rc.RequirementID=o.RequirementID
其中len(isnull(o.Budget,“:D”))0
那是什么“:D”?而且这也不是正确的方法。当预算为空时,所有相关列也将为空。您是否测试过我的查询?如果拒绝requirementsdetailsfororganization列的空值,为什么要进行正确的联接?