2016-05-11 11 views

Antwort

8

finden versuchen Sie den Code unten

select SUM(SUBSTRING(input, 2)) from input_table 
+0

Müssen Sie es nicht zuerst als Nummer gießen? –

+0

@DanBracuk, Das kann auch getan werden. Aber wenn es sicher ist, nur das erste Zeichen zu entfernen, um eine Zahl zu bekommen, dann ist das Gießen nicht notwendig. – Arun

+0

Thanx @Arun arbeitet –

3

diese versuchen kann arbeiten;)

SQL Fiddle

MySQL 5.6 Schema:

CREATE TABLE input_table 
    (`username` varchar(1), `input` varchar(3)) 
; 

INSERT INTO input_table 
    (`username`, `input`) 
VALUES 
    ('A', 'A10'), 
    ('B', 'A9'), 
    ('C', 'A8'), 
    ('D', 'A7'), 
    ('E', 'A0'), 
    ('F', 'A4') 
; 

Abfrage 1:

select sum(replace(input, 'A', '')) from input_table 

Results:

| sum(replace(input, 'A', '')) | 
|------------------------------| 
|       38 | 
+0

Vielen Dank für Ihre Antwort –

0

Verwenden Sie RIGHT Funktion, um die Nummer auf der rechten Seite und CAST es und dann finden Sie die SUM.

Abfrage

SELECT SUM(CAST(RIGHT(input, LENGTH(input) - 1) AS UNSIGNED)) AS `SUM` 
FROM input_table; 
+0

Während dies funktioniert, fehlt es die Einfachheit der anderen zwei Antworten. –

+0

@DanBracuk: Nur eine andere Perspektive. – Wanderer

0

Versuchen Sie dies auch:

SELECT SUM(CAST(TRIM(LEADING 'A' FROM input)) AS UNSIGNED) AS total FROM table; 
Verwandte Themen