Implementacja algorytmu przezukiwania tabeli zapisanego w pseudokodzie

0

aimplementuj w języku SQL poniższy, zapisany w pseudokodzie, algorytm przeszukiwania tabeli:
a) Odczytaj wiersz tabeli Customer.
b)Sprawdź, czy w kolumnie Last Name znajduje się wartość Kumar.
c) Jeżeli tak, skopiuj wiersz do tabeli tymczasowej.
d) Sprawdź, czy tabela zawiera dalsze wiersze:

  • Jeżeli tak, powtórz poprzednie kroki.
  • Jeżeli nie, zwróć użytkownikowi zawartość tabeli tymczasowej.
0
darek88 napisał(a):

aimplementuj w języku SQL poniższy, zapisany w pseudokodzie, algorytm przeszukiwania tabeli:
a) Odczytaj wiersz tabeli Customer.
b)Sprawdź, czy w kolumnie Last Name znajduje się wartość Kumar.
c) Jeżeli tak, skopiuj wiersz do tabeli tymczasowej.
d) Sprawdź, czy tabela zawiera dalsze wiersze:

  • Jeżeli tak, powtórz poprzednie kroki.
  • Jeżeli nie, zwróć użytkownikowi zawartość tabeli tymczasowej.

Powyższe oznacza mniej więcej tyle: "napisz zapytanie SQL, które z tabeli Customer wybierze rekordy spełniające warunek LastName='Kumar'".

0

**T-SQL
**

DECLARE @Customers TABLE (Id tinyint, [First name] varchar(255), [Last name] varchar(255))

INSERT INTO @Customers
  VALUES (1, 'Akshay', 'Kumar'), (2, 'Salman', 'Khan'), (3, 'Kamal', 'Haasan')

IF OBJECT_ID('tempdb..#temp') IS NOT NULL
  DROP TABLE #temp

SELECT * INTO #temp
FROM @Customers
WHERE [Last name] = 'Kumar'

SELECT * FROM #temp
1

Jak byk pyta o kursora.

0

Obsluge transakcji i bledow tez dodac? xD

IF OBJECT_ID('tempdb..#customers_temp') IS NOT NULL
    DROP TABLE #customers_temp;

DECLARE @Customers TABLE
    (
        Id TINYINT ,
        [First name] VARCHAR(255) ,
        [Last name] VARCHAR(255)
    );

INSERT INTO @Customers
VALUES ( 1, 'Akshay', 'Kumar' ) ,
       ( 2, 'Salman', 'Khan' ) ,
       ( 3, 'Kamal', 'Haasan' ) ,
       ( 4, 'Sahid', 'Kumar' );

DECLARE @Id TINYINT;
 
DECLARE customers_cursor CURSOR FOR
    SELECT Id
    FROM   @Customers
    WHERE  [Last name] = 'Kumar';

OPEN customers_cursor;
FETCH NEXT FROM customers_cursor
INTO @Id;

SELECT *
INTO   #customers_temp
FROM   @Customers
WHERE  Id = @Id;

FETCH NEXT FROM customers_cursor
INTO @Id;

WHILE @@FETCH_STATUS = 0
    BEGIN

        INSERT INTO #customers_temp
                    SELECT *
                    FROM   @Customers
                    WHERE  Id = @Id;
        FETCH NEXT FROM customers_cursor
        INTO @Id;
    END;

CLOSE customers_cursor;
DEALLOCATE customers_cursor;

SELECT *
FROM   #customers_temp;
2

Ciezko wam dogodzic ;)

IF OBJECT_ID('tempdb..#customers_temp') IS NOT NULL
    DROP TABLE #customers_temp;

DECLARE @Customers TABLE
    (
        Id TINYINT ,
        [First name] VARCHAR(255) ,
        [Last name] VARCHAR(255)
    );

INSERT INTO @Customers
VALUES ( 1, 'Akshay', 'Kumar' ) ,
       ( 2, 'Salman', 'Khan' ) ,
       ( 3, 'Kamal', 'Haasan' ) ,
       ( 4, 'Sahid', 'Kumar' );

DECLARE @Id TINYINT;
DECLARE @lastname VARCHAR(255);

DECLARE customers_cursor CURSOR FOR
    SELECT Id ,
           [Last name]
    FROM   @Customers;
 
OPEN customers_cursor;
FETCH NEXT FROM customers_cursor
INTO @Id ,
     @lastname;

IF @lastname = 'Kumar'
    SELECT *
    INTO   #customers_temp
    FROM   @Customers
    WHERE  Id = @Id;

FETCH NEXT FROM customers_cursor
INTO @Id ,
     @lastname;

WHILE @@FETCH_STATUS = 0
    BEGIN
        IF @lastname = 'Kumar'
            INSERT INTO #customers_temp
                        SELECT *
                        FROM   @Customers
                        WHERE  Id = @Id;
        FETCH NEXT FROM customers_cursor
        INTO @Id ,
             @lastname;
    END;

CLOSE customers_cursor;
DEALLOCATE customers_cursor;

SELECT *
FROM   #customers_temp;

Jak mi w firmie junior podobne cudo wypocil to mu kazelem [CIACH!] :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1