Ho bisogno di pulire i numeri di telefono memorizzati come varchar. Vi sono dati errati in cui i numeri di telefono sconosciuti sono memorizzati come una sequenza di una singola cifra. Eventualmente più complesso (prefisso prefisso & prefisso) verrà eseguito ma voglio semplicemente eseguire una query su record ovviamente non validi.Query T-SQL per identificare i campi varchar costituiti da un singolo carattere/cifra ripetuta?
Così, per esempio:
Valido Numero di telefono: 3289903829
valida Numero di telefono: 1111111111
Ora, se il numero di serie fasullo siano di lunghezza adeguata (10 cifre) è facile da analizzare e pulito.
SELECT phone
FROM customers
SET phone = NULL
WHERE phone IN ('0000000000','9999999999',''8888888888','7777777777','6666666666','5555555555','4444444444','3333333333','2222222222','1111111111')
Tuttavia a volte i telefoni falsi sono di lunghezza arbitraria (probabilmente a causa di errori di battitura) così 11 quelli o 9, o quelli n quelli.
Come posso identificare le stringhe che contengono tutti lo stesso carattere/cifra?
1111111 - match
4444 - match
1112 - no match
4445555 - no match
È anche possibile utilizzare 'sinistra (telefono, 1)' piuttosto che 'sottostringa (telefono, 1,1)'. –
@ Mark, grazie verrà aggiornato per il tuo commento –
@adrift è rimasto (telefono, 1) più veloce di sottostringa (telefono, 1,1)? Solo curioso. –