1 つまたは 2 つのテーブルに参加する必要があります。1 つのテーブルに給与フィールドがあります。したがって、フィールドがnullの場合も計算を行い、0を返すことを意味します。したがって、len()を使用します。しかし、正しい値にアクセスできません。len()条件の前に結合を使用すると、結果が得られます。しかし、結果の 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**
この条件にスターを付けた上記のコードでは、使用しました。しかし、なぜこのタイプの値が表示されるのでしょうか。
私の出力:
ジョブに挿入 ( 1 ,85000)
ジョブに挿入( 3 ,205000)
ジョブに挿入( 4 ,0(nullの場合))
ジョブに挿入 ( 16、145000)
ジョブに挿入 ( 18、110000)
前の結果で、値が太字になっているのは Id です。それは順序付けられておらず、len() を使用すると、値の範囲内でいくつかの値が失われます
私の問題を提案してくれる人はいますか?