私はこのようなテーブルがあります。私はこの2つのテーブルにSQL Serverが
表に入社構築
Rule | Mask |Replacement
---------------------------------
@ # 12 | @ |[^0-9]
@ # 12 | # |[0-9]
を1
Mask_ID | Mask |Replacement
---------------------------------
1 | @ |[^0-9]
2 | # |[0-9]
表2
Rule_ID | Rule
--------------
1 | @ # 12
私が望む結果がこれです:私はこれを行うには、ボタンをREPLACE使用しようとしてきたが、私はこれだけの結果私は
Rule | Expression
--------------------
@ # 12 | [^0-9] # 12
@ # 12 | @ [0-9] 12
を生成することができました
Rule | Expression
--------------------
@ # 12 | [^0-9] [0-9] 12
REPLACE関数を使用して複数の行を1つの行に適用する方法が不明です。誰かが何か提案があれば、私はそれを感謝します。
これは私がこれまで持っているものですが、その私は、上記の結果を取得させる:あなたの与えられたサンプルデータの場合
SELECT
A.PointMask_CODE
,B.PointMasking_Rule_CODE
,B.Mask
,B.Escape_Character
,B.EscapedMaskRule
,REPLACE(A.PointMask_CODE, B.Mask, B.EscapedMaskRule)
FROM
tblStatusPointMasks_CORE A
LEFT JOIN
vwAORs_Status_PointMasks_EscapedRules B
ON
PointMask_CODE LIKE '%' + B.EscapedMask + '%' ESCAPE ISNULL(B.Escape_Character, '\')
これは、リレーショナル設計ではありません。だからあなたはそれに非常に苦労しています。ルール列にシンボルの配列/リストを効果的に埋め込み、それをテーブル結合に投影しようとしています。配列とリストを列に埋め込むことは、First Normal Formに違反します。 – RBarryYoung