1つのSQLServerデータベーステーブルの列にパスが含まれています(ファイルパスではなく、ディレクトリパスのみ)。
LIKE
現在、関数を使用して、指定されたファイルパスのすべてのサブフォルダーを返すクエリがあります。
WHERE Path LIKE @FilePath + '%'
ちなみに、LIKEで使用されるエスケープ文字はすべて有効なファイルパス文字であるため、このアプローチには問題があることを認識しています。完成したクエリでESCAPEを適切に使用します。
とにかく、私の質問に戻ります。指定されたパスの直接のサブフォルダーのみを返すようにクエリを変更できるようにしたいと思います。これは、文字列の最後にスラッシュを付けるほど簡単ではありません。これは、文字列の右側の部分を解析するときに、%ワイルドカードがすべてを飲み込むためです。
[^]エスケープシーケンスを使用して、\文字を除外して検索することを検討していましたが、うまくいきませんでした。私はこれを試しました。
WHERE Path LIKE @FilePath + '[^\]'
しかし、意図した結果が得られないため、正しく使用しているかどうかさえわかりません。