$25.00 などの価格文字列を照合して、対応する通貨記号を見つけようとしています。たとえば、$25.00 は USD と一致する必要があります。これだけうまくいっています。ただし、25.00 (通貨記号なし) を渡すと、CUP で不要な一致が発生します。
SQL Server 2012 で次のテーブルをセットアップしました。
CurrencyId varchar(3)
Symbol nvarchar
データの一部を次に示します。
Currency Symbol
ANG ƒ
CUP ₱
EUR €
USD $
クエリは次のとおりです。
SELECT [t0].[CurrencyId], [t0].[Symbol]
FROM [dbo].[EWN_Currency] AS [t0]
WHERE '25.00' LIKE '%'+[t0].[Symbol]+'%'
テストのために文字列連結をスキップすると、少なくとも次のような悪い一致は返されません。
SELECT [t0].[CurrencyId], [t0].[Symbol]
FROM [dbo].[EWN_Currency] AS [t0]
WHERE '25.00' LIKE '%₱%'
LIKE '%'+[t0].[Symbol]+'%' では、文字列連結が正しく設定されていないようです。私はすべてを nvarchar に変換して遊んだことがありますが、運が悪いです。どうすればこれを機能させることができますか?ありがとう。