Запрос Sql server возвращает “нет данных” в строке, если данные не найдены
Мой код способен извлекать данные кода книги, которые совпадают со штрих-кодом, но не тогда, когда нет совпадения данных. Я хочу, чтобы он напечатал "Bookcode not found" в ячейке также, если данные не найдены.
Что я уже пробовал:
Я попробовал использовать один за другим штрих-код в sql server. Если я помещу только один пример штрих-кода "123", который не имеет данных, то ему удастся отобразить "Bookcode not found", но если я помещу 3 других штрих-кода, которые имеют данные, то "Bookcode not found" не будет включен. Я очень ценю вашу помощь.
WITH cte AS (SELECT *,ROW_NUMBER() OVER(PARTITION BY Barcode ORDER BY InvtID Asc) rid FROM [Danny].[dbo].[InventoryCustomer] WHERE Barcode In ('ean','9789830093819')) SELECT InvtID, BOOKCODE = coalesce(InvtID, 'Bookcode not found') FROM cte WHERE rid=1 UNION SELECT InvtID = '', BOOKCODE = 'Bookcode not found' WHERE NOT EXISTS(SELECT 1 FROM CTE)
Santosh kumar Pithani
Есть ли примеры данных и ожидаемый результат?
Member 14127871
Например мой скрипт выше будет отображаться как показано ниже если только я поставлю 1 штрих код который не имеет буккода
InvtID | Bookcode
null | Bookcode не найден
.. Ниже, если 1 код без книжного кода и 2 кода имеют книжный код
InvtID | Bookcode
CB0212 | CB0212
DD2921 | DD2921
Он пропускает "Буккод не найден", где ожидаемый результат я хочу, как показано ниже
InvtID | Bookcode
null | Bookcode не найден
CB0212 | CB0212
DD2921 | DD2921
Santosh kumar Pithani
Используете ли вы SQL Server 2016?
Member 14127871
Sql server 2008
Member 14127871
Это все запросы, которые я пробовал, но ни один из них не будет отображать "нет данных", если в sql нет строк. Он в основном просто отображает только существующие данные
1. 'SELECT isnull((выберите InvtID
Из InventoryCustomer где штрих-код в('123','9789830093819')),'нет bookcode найден)
Как Инвтид '
2. 'Select case when s.InvtID IS NOT NULL Then s.InvtID else 'no data' end as Bookcode
from (Select InvtID as InvtID FROM InventoryCustomer WHERE Barcode IN('123','9789830093819')) Р
Левое соединение InventoryCustomer s на s.InvtID = R. InvtID'
3. 'IF NOT EXISTS (Select InvtID From InventoryCustomer WHERE Barcode in ('123','9789830093819'))
Begin выберите "Bookcode not found" в качестве конца Bookcode
ЕЩЕ
Выберите InvtID из InventoryCustomer где штрих код в ('123','9789830093819')'
4. 'Выберите InvtID, случай, когда InvtID имеет значение null или InvtID=" затем "нет данных"
Еще Инвтид
Конец как Bookcode
От InventoryCustomer где штрих код в ('123','9789830093819')'
5. 'WITH cte AS(SELECT case WHEN InvtID IS NULL OR InvtID=" THEN 'No Bookcode Found'
Еще InvtID конец как InvtID,штрих-код,функции row_number() над(раздел по штрих-коду заказа на InvtID АСК)
избавиться от InventoryCustomer)
Выберите InvtID в качестве кода книги из cte, где rid=1 и штрих-код в ('123','9789830093819')'