Ćwiczenie t-sql

  • Rejestracja: dni
  • Ostatnio: dni
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

daniel1302
  • Rejestracja: dni
  • Ostatnio: dni
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?

PA
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 3891
0

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

Kopiuj
select

    case when substring(telefon,4,1) = ')' then '0' else '' end + replace(replace(telefon,')',''),'(','') 
from
    tabela
ipsd
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: London
0
Kopiuj
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;

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.