「Sample Product Maker Product Name XYZ - Size」という説明があり、これから「Product Name XYZ」という値のみを取得したいと考えています。これが 1 行だけの場合、SUBSTRING を使用するだけで問題はありませんが、何千ものレコードがあり、初期値の Sample Product Maker はすべての製品で同じですが、製品名は異なる可能性があり、その後は何も必要ありません。ハイフン。
これまでのところ、この質問のヘッダーにエラーが発生しています。
SELECT i.Itemid,
RTRIM(LTRIM(SUBSTRING(i.ShortDescription, 25, (SUBSTRING(i.ShortDescription, 25, CHARINDEX('-', i.ShortDescription, 25)))))) AS ProductDescriptionAbbrev,
CHARINDEX('-', i.ShortDescription, 0) - 25 as charindexpos
FROM t_items i
「部分文字列関数の引数 3 の引数データ型 varchar は無効です」というメッセージが表示されます
ご覧のとおり、SQL ステートメントの最後の行の値を取得していますが、それを SUBSTRING 関数にプラグインしようとすると、さまざまな問題が発生します。