Prima Aprilis

2012-04-01
Kto znajdzie taką klawiaturę w Prima Aprilis na swoim biurku?
Klawiatura na Prima Aprilis

Prima Aprilis, Klawiatura

By Rafał Kraik in Humor

Jak wyciąć cyfry z końca napisu (SQL)?

2012-04-01

Załóżmy, że masz tabelę:

CREATE TABLE test (string VARCHAR(50))
INSERT INTO test VALUES
(’S-123′),
(’SKOK-12#34′),
(’ABC?CDE/12/EG/19871′)

Zauważ, że każdy z napisów kończy się jakąś liczbą. Jak wyciąć liczbę z napisu w tym przypadku? Przydatna będzie funkcja PATINDEX. Funkcja ta potrafi znaleźć wystąpienie określonego wzorca w napisie. Tylko czym miałby być u nas ten napis. Wycięcie z końca napisu liczby polega na znalezieniu pierwszego znaku, który liczbą nie jest patrząc od końca. Maska, która określa znak nie będący liczbą wygląda tak: '%[^0-9]%’ natomiast obrót napisu tak, by analizę wykonać od końca zapewni funkcja REVERSE: Czytaj dalej »

By Rafał Kraik in SQL

Co jest warty certyfikat? Jak rozpocząć certyfikację z SQL 2012?

2012-03-31

Kiedy przystępujesz do programu certyfikacyjnego, masz w tym jakiś cel. Wierzę, że tym celem nie jest jedynie udekorowanie ścian fajnymi dyplomami. Dyplom dostaniesz już po szkoleniu, zaś wejście na ścieżkę certyfikacyjną to zaliczanie kolejnych egzaminów.

Przyjrzyjmy się kilku liczbom:

  • Co roku na świecie przybywa około 59% procent danych w porównaniu do poprzedniego roku (Gartner)
  • Z tego 15% jest zapisywane w postaci tabel
  • W ciągu najbliższych dziesięciu lat będzie 44 razy więcej danych niż obecnie
  • W tym samym czasie ilość osób zajmujących się tymi danymi 1,4 raza

Wniosek? Będziemy mieć więcej pracy. Czytaj dalej »

Porównanie wersji/edycji SQL Server 2012

2012-03-23

Na stronie http://msdn.microsoft.com/en-us/library/cc645993(v=SQL.110).aspx znajduje się prosta tabelka przedstawiająca możliwości i ograniczenia poszczególnych wersji SQL Server 2008.

Strona zawiera też opisy prezentowanych funkcjonalności.

By Rafał Kraik in SQL, SQL 2012

Być zawsze na czas. Technologia, wiedza i ludzie.

2012-03-16

Znam pewną fabrykę, która jak to duża fabryka, nie przyjmowała małych zleceń, tylko same duże. Wiadomo – duże zlecenie, duże pieniądze. Aby zaś zrealizować małe zlecenie pracownicy musieli odpowiednio przygotować do tego maszyny, wymienić materiał, co generowało mniejsze dochody. Najgorsze przy przyjmowaniu małych zleceń było to, że kiedy fabryka zdecydowała się je realizować, a właśnie pojawiło się duże opłacalne zadanie, wykonanie dużego zlecenia nie było możliwe, bo maszyny były zajęte.

Długo więc bardziej opłacało się aby nie wszystkie maszyny na hali pracowały i nie wszyscy opłaceni pracownicy rzeczywiście pracowali. Aż pewnego razu, ktoś w fabryce postanowił wdrożyć system zarządzania produkcją. Koszt był niemały, oprogramowanie trzeba było stworzyć na zamówienie, kupić sprzęt komputerowy, zadbać o sieć na terenie fabryki i przeszkolić z używania programu wszystkich pracowników. Czytaj dalej »

Klauzula OFFSET i FETCH w SQL 2012

2012-03-14

Od wersji SQL 2012 ORDER BY zostało powiększone o klauzulę OFFSET. Pozwala ono stronicować dane sortowane w okręlsonym porządku. Zobacz następujący przykład:

USE TEMPDB
 
CREATE TABLE TestNumber (ID INT)
 
DECLARE @i INT=0
WHILE @i<100
BEGIN
 SET @i+=1
 INSERT TestNumber VALUES (@i)
END
 
SELECT ID FROM TestNumber
ORDER BY ID
OFFSET 50  ROWS  FETCH NEXT 10 ROWS ONLY
 

W testowej tabelce jest 100 rekordów (liczby ID od 1 do 100). SELECT wyświetli tylko rekordy od 51 do 60:

  • OFFSET mówi, że 50 pierwszych rekordów należy pominąć
  • FETCH mówi ile tych rekordów należy pobrać.

Element FETCH można pominąć.

By Rafał Kraik in SQL, SQL 2012

Limit 8060 B na rekord pominiety od SQL 2005.

2012-03-14

Kiedy w SQL 200o tworzyłbyś taką tabelę:

CREATE TABLE LargeTable(
x varchar(8000),
y varchar(8000)
)

otrzymałbyś ostrzeżenie:

Warning: The table 'LargeTable’ has been created but its maximum row size (16025) exceeds the maximum number of bytes per row (8060). INSERT or UPDATE of a row in this table will fail if the resulting row length exceeds 8060 bytes.

Rzeczywiście serwer mógł przechowywać wyłącznie rekordy o maksymalnym rozmiarze 8060B, jeśli zaś trzeba było używać dużych typów należało korzystać z typu text. Czytaj dalej »

By Rafał Kraik in Błedy, SQL