Добавление текста в эту строку - PullRequest
0 голосов
/ 19 ноября 2009

Я новичок, поэтому прошу прощения за простоту этого. Я пытаюсь получить общее количество, обрезать лишние знаки после запятой, а затем добавить текст ... все работает, пока я не попробую КРУГЛЫЙ

РАУНД (CAST (ServiceFee * COUNT (UserID) КАК VARCHAR (20)), 0) + CAST ('иена' как VARCHAR (20))

Заранее спасибо

Ответы [ 2 ]

1 голос
/ 19 ноября 2009

Зависит от диалекта SQL.

Например, в MySQL оператор + предназначен только для математического сложения. Если вы хотите объединить значений, следует использовать CONCAT() (в MySQL) или оператор || (другие СУБД, поддерживающие стандартный SQL). Вы также делаете избыточный CAST в ROUND (), потому что функция ROUND ожидает, что ее аргумент будет числовым.

Итак, вот фиксированный оператор в MySQL:

CONCAT(ROUND(ServiceFee * COUNT(UserID), 0), ' yen')

Или в стандартном SQL:

CAST(ROUND(ServiceFee * COUNT(UserID), 0) AS VARCHAR(20)) || ' yen'

(CAST, вероятно, избыточен, но я сохранил его на всякий случай, если у вас была для этого цель)

0 голосов
/ 19 ноября 2009

Вы должны округлить значение, прежде чем его разыграть:

CAST(ROUND(ServiceFee * COUNT(UserID),0) AS VARCHAR(20)) + ' yen'
...