Ćwiczenie t-sql

0

Próbuję uczyć się języka SQL, aczkolwiek natrafiłem na zadanie z którym nie mogę sobie poradzić. Poniżej przesyłam treść zadania:

Proszę zaprezentować dane z kolumny bez nawiasów. Jeśli liczba w nawiasie ma 2 cyfry, zaprezentować ją jako trzycyfrową (dodać zero na początku)

Przykładowe liczby:
(345)3466454
(23)3464565

0

Pokaz co zrobiles i z czym masz problem...

Podpowiedzi:

  1. Wyextractuj fragment ktory Cie interesuje np z uzyciem PADINDEX,LEN, albo z REGEXP_SUBSTR
  2. Uzyj funkcji FORMAT do sformatowania, albo uzyj IF'ów :)

Na jaki silnik bazodanowy tworzysz?

0

Zakładając że wszystkie telefony mają prefix w nawiasie i minimum 2 cyfrowy, bez spacji to:

select

    case when substring(telefon,4,1) = ')' then '0' else '' end + replace(replace(telefon,')',''),'(','') 
from
    tabela
0
DECLARE @test TABLE(number VARCHAR(MAX));
INSERT INTO @test VALUES('(345)3466454'), ('(23)3464565');

SELECT RIGHT('000'+ISNULL(SUBSTRING(number, CHARINDEX('(', number)+1, CHARINDEX(')', number)-CHARINDEX('(', number)-1), ''), 3)+RIGHT(number, LEN(number)-CHARINDEX(')', number))
FROM @test;

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