次のクエリは、元のクエリのレコードが保存されていないため、Netezzaビューから抽出されています。どのようにこのクエリが何をしているのか理解するには?変更されたクエリーを理解する方法
CASE WHEN (O.E_SRC ~~LIKE_ESCAPE('FIX.%.OrderNew'::"VARCHAR", '\'::"VARCHAR"))
THEN ADMIN."REPLACE"(ADMIN."REPLACE"(O.E_SRC, '.OrderNew'::"VARCHAR", ''::"VARCHAR"),
'FIX.'::"VARCHAR", ''::"VARCHAR")
ELSE O.E_SRC
END AS CONNECTION_ID
私が理解したところでは、 'FIX。%。OrderNew'にパターンマッチングがあり、それは何らかの置換をしますか?元のクエリはどのように保存されますか? NVL(RNO,0)
同様 だからnvl()
に元のクエリーと同等または以下のNetezzaの他のいくつかの機能変更のクエリ
CASE WHEN (O.E_SRC ~~LIKE_ESCAPE('FIX.%.OrderNew'::"VARCHAR", '\'::"VARCHAR"))
THEN ADMIN."REPLACE"(ADMIN."REPLACE"(O.E_SRC, '.OrderNew'::"VARCHAR", ''::"VARCHAR"),
'FIX.'::"VARCHAR", ''::"VARCHAR")
ELSE O.E_SRC
END AS CONNECTION_ID
あなたは天才です。ありがとうございます!!!それは経験から来るのですか、それを理解する特別な方法がありますか? –
ほとんどの場合、ただの経験です。ビュー定義に格納されているものは、CREATE VIEW文で使用されていたものと同等であると考えられます。ほとんどの場合、これは美容的な変更(::式のキャストのような)ですが、もっと複雑なものへの変更(LIKE_ESCAPEのLIKE_ESCAPEへの変更のように)が大きい可能性があります。 – ScottMcG