Tutti,prova per Maiuscolo - T-Sql
Come posso verificare se un personaggio varchar specificato o tutta la stringa è maiuscola in T-SQL? Idealmente mi piacerebbe scrivere una funzione per verificare se un carattere è maiuscolo, quindi posso applicarlo successivamente a un varchar generico. Dovrebbe restituire false per caratteri non alfabetici. Mi interessano solo i personaggi di lingua inglese.
Sto lavorando con T-SQL in SQL Management Studio e ho provato tirando record che iniziano con una lettera minuscola da una tabella in questo modo:
select * from TABLE
where SUBSTRING(author,1,1) != LOWER(SUBSTRING(author,1,1))
che restituisce 0 record, ma so ci sono record che iniziano con lettere maiuscole e minuscole.
Grazie
EDIT: Dato che sia podiluska e joachim-isaksoon hanno risposto con successo alla mia domanda (Entrambi i metodi di lavoro per i miei scopi), sarebbe qualcuno mente spiegando che sarebbe il metodo più efficiente di utilizzare per interrogare una tabella con un numero elevato di record per filtrare i record con autori che iniziano con o senza una lettera maiuscola?
"Caratteri non alfabetici" in quale lingua? Restituisce vero o falso per 'Π'? (maiuscolo 'π') –
Grazie Martin, ho migliorato la mia domanda. Non mi interessa cosa restituisce per i caratteri dell'alfabeto non inglese. – Danzomida
Risposta alla parte EDIT: dovrebbe essere irrilevante, entrambe le query dovrebbero eseguire lo stesso. In entrambi i casi è necessario scorrere l'intera tabella e recuperare il valore di 'author' per ogni riga, che è ciò che richiede il 99% del tempo di interrogazione. Funzioni come 'LOWER()', 'UNICODE()' sono prive di significato in termini di prestazioni e qualunque cosa scegliate non dovrebbe fare la differenza. Detto ciò, suggerisco comunque di testare entrambe le query sui dati effettivi e vedere se funziona meglio. –