Возьмите первые 3 символа из параметра и создайте из него новый параметр, чтобы затем найти его, как НРАВИТСЯ? - PullRequest
0 голосов
/ 16 января 2020

Первые 3 символа элемента - это группа цен. Это для хранимой процедуры, поэтому мне нужно найти все товары в ценовой группе на основе самого товара.

DECLARE @ItemNumber VARCHAR(30) = 'ABC1234'
DECLARE @PG VARCHAR(3) = SUBSTRING(@ItemNumber, 1, 3)

SELECT * 
FROM Coupons (NOLOCK)
WHERE CouponType = 'PriceGroup'
and Description like (@PG)

1 Ответ

3 голосов
/ 16 января 2020

Поскольку вы используете LIKE, я могу только предположить, что вы ищете первые 3 символа в любом месте в описании. Примерно так будет работать.

DECLARE @ItemNumber VARCHAR(30) = 'ABC1234'

SELECT * 
FROM Coupons
WHERE CouponType = 'PriceGroup'
and Description like '%' + LEFT(@ItemNumber, 3) + '%'

Кроме того, NOLOCK очень редко является хорошей идеей. https://blogs.sentryone.com/aaronbertrand/bad-habits-nolock-everywhere/ Но если вы настаиваете на его использовании, вам нужно включить ключевое слово WITH для подсказок запроса. Отказ от них не рекомендуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...