Почему вложенные ролики не работают в MySQL? (Это делается с помощью SQL Server)Вложенный CAST не работает
select cast(cast(myColumn as decimal(5,2)) as int) from myTable
Почему вложенные ролики не работают в MySQL? (Это делается с помощью SQL Server)Вложенный CAST не работает
select cast(cast(myColumn as decimal(5,2)) as int) from myTable
По the manual:
CAST(expr AS type)
[...]
CONVERT(expr,type)
[...]
type
может быть одним из следующих значений:
BINARY[(N)]
CHAR[(N)]
DATE
DATETIME
DECIMAL[(M[,D])]
SIGNED [INTEGER]
TIME
UNSIGNED [INTEGER]
Так, просто следуйте инструкции:
SELECT CAST(CAST(myColumn AS DECIMAL(5,2)) AS SIGNED) FROM myTable
или
SELECT CAST(CAST(myColumn AS DECIMAL(5,2)) AS UNSIGNED) FROM myTable
Этот запрос работает над концепцией вложенной гипсе.
литых (сумма (литье (column_name целый) + литье (column_name, как целое)), как BIGINT) в качестве оплаты от table_name
Что вы пытаетесь достичь? Какова цель кастинга как 'UNSIGNED', только тогда для интерпретации полученных данных как подписанного« INT »? Разве это не будет иметь такой же эффект, как прямое выполнение 'CAST (myColumn AS INT)'? – eggyal
@eggyal: Я изменил свой пример.Возникает вопрос: найти целочисленные числа в поле varchar и игнорировать десятичные числа, подобные этому: 'select * from tab, где cast (cast (myColumn as decimal (5,2)) как int) = cast (myColumn as decimal (5,2)) ' –
Для этого вам, вероятно, будет легче протестировать ваши столбцы с помощью [регулярных выражений] (http://dev.mysql.com/doc/refman/5.1/en/regexp.html) , См. [Этот вопрос] (http://stackoverflow.com/questions/75704/how-do-i-check-to-see-if-a-value-is-an-integer-in-mysql) для получения дополнительной информации. – eggyal