0
votes

Comment compter un personnage dans SQL Server?

S'il vous plaît aidez-moi - j'ai un problème de comptage combien de 'A' (caractère) il y a dans une rangée et une colonne.

Ceci est ma requête: p>

declare @zz as varchar(10) = '123a123a12'
select @zz


1 commentaires

Veuillez vous référer à la réponse mise à jour. Cela vous aide à trouver de l'argent à partir d'une piqûre.


3 Réponses :


0
votes

Une approche Posibe est d'utiliser remplacer () et LEN () Fonctions.:

DECLARE @zz varchar(10) = 'aa3a123a12' 
;WITH cte AS (
   SELECT 1 AS N
   UNION ALL
   SELECT N + 1
   FROM cte
   WHERE N < LEN(@zz)
)
SELECT COUNT(*) AS CharCount
FROM cte
WHERE SUBSTRING(@zz, N, 1) IN ('a', '1')

p>Outpuputa: Une autre approche possible, si vous souhaitez compter plusieurs caractères, est d'utiliser Récursion: P>

CharCount
        2


0 commentaires

2
votes

L'ancien tour de l'école ici est de remplacer les 'A avec des espaces vides (' ') et de comparer la longueur de la chaîne résultante à la longueur de l'original: xxx


0 commentaires

0
votes

J'utiliserais remplacer et de la longueur de données au lieu de len , en raison des espaces de fin pouvant apparaître après remplacer . Exemple: xxx

La sortie est 3 et 9. Si @zz est nvarchar , pas varchar , vous devrez diviser par 2.

de MSDN:

La fonction Datallength renvoie le nombre d'octets utilisés pour représenter tout Expression


0 commentaires