もう 1 つのアイデア: REPLACE は、特にテンプレートが複雑な場合に、この種の作業に役立つことがわかりました。
SELECT REPLACE(REPLACE(
'%mix_type% (%mix_num%)' /*template*/
,'%mix_type%', mix_type)
,'%mix_num%' , mix_num ) as description,
FROM acid_batch
WHERE mix_num < 10
唯一の欠点はREPLACE(
、置換する変数と同じ数の を追加する必要があることですが、テンプレートに何回表示されるかに関係なく、少なくとも変数ごとに 1 つだけ必要です。
(注: 区切り文字として「%」を使用することに特別な意味はありません。これは私の個人的な慣習にすぎません。別のパターンを選択することもできます。たとえば<mix_type>
、または[mix_type]
)
この特定の例では、やり過ぎのように見えますが、場合によっては、物事がはるかに簡単になります。
template := 'bla bla %a% %b% %a%';
output := REPLACE(REPLACE(template
,'%a%', some_complex_expression)
,'%b%', b);
上記を次のものと比較します。
output := 'bla bla ' || some_complex_expression || ' ' || b || ' ' || some_complex_expression;