Zadanie 10.

Zadanie składa się z kilku kroków:

1. Utwórz wspólne wyrażenie tablicowe (CTE), które będzie zwracać id przewoźnika, nazwę firmy, miasto i kraj. Dodaj filtr, który zwróci tylko przewoźników z Londynu. Nazwijmy to wyrażenie SuppliersByCity.

Wybierz wszystkie rekordy z SuppliersByCity.

2. Zadeklaruj zmienną tekstową ‚miasto’, która będzie przechowywać nazwę miasta. Zmodyfikuj CTE, wstawiając zmienną. (DECLARE @miasto as nvarchar(20) = ‚London’;).

3. Sprawdź poprawność działania kwerendy, wykonując ją z różnymi parametrami zmiennej @miasto (np Tokyo, Osaka, Berlin, Ravenna, Paris, Boston, Sydney).

4. Zmodyfikuj kwerendę tak, by działała, gdy zmienna @miasto zawiera jedynie część nazwy.

Baza: Northwind, Tabela: dbo.Suppliers, Kolumny: SupplierID, CompanyName, City, Country

Rozwiązanie

1. WITH SuppliersByCity AS
(
SELECT SupplierID, CompanyName, City, Country
FROM dbo.Suppliers
WHERE city = 'London'
)
SELECT * FROM SuppliersByCity;

 

2. DECLARE @miasto as nvarchar(20) = 'London';
WITH SuppliersByCity AS
(
SELECT SupplierID, CompanyName, City, Country
FROM dbo.Suppliers
WHERE city = @miasto
)
SELECT * FROM SuppliersByCity;

 

4. DECLARE @miasto as nvarchar(20) = 'sa';
WITH SuppliersByCity AS
(
SELECT SupplierID, CompanyName, City, Country
FROM dbo.Suppliers
WHERE city LIKE '%'+@miasto+'%'
)
SELECT * FROM SuppliersByCity;

[collapse]