Mysql 我需要删除低于一定数量的所有值
我正在尝试删除Mysql 我需要删除低于一定数量的所有值,mysql,sql,Mysql,Sql,我正在尝试删除CallAmt下面$51中的所有值 运行下面的查询时,我收到一条错误消息8114 我想我需要以某种方式将CallAmt(varchar)转换为十进制,并删除“$” 有什么想法吗 Select AccountName, AccountNumber, CallType, CallAmt, TradeDate, DueDate, CASE WHEN CallType = 'RM' THEN 'H' WHEN CallType = 'CM' THEN 'H' WHE
CallAmt
下面$51
中的所有值
运行下面的查询时,我收到一条错误消息8114
我想我需要以某种方式将CallAmt(varchar)
转换为十进制,并删除“$
”
有什么想法吗
Select AccountName, AccountNumber, CallType, CallAmt, TradeDate, DueDate,
CASE
WHEN CallType = 'RM' THEN 'H'
WHEN CallType = 'CM' THEN 'H'
WHEN CallType = 'RT' THEN 'F'
END as CallType
from dbo.EXT250
Where CallType in ('RM', 'CM', 'MD', 'RT') and AccountNumber Not Like '[29]%' and CallAmt > 50.00
您可以尝试:
Select AccountName, AccountNumber, CallType, CallAmt, TradeDate, DueDate,
(CASE WHEN CallType = 'RM' THEN 'H'
WHEN CallType = 'CM' THEN 'H'
WHEN CallType = 'RT' THEN 'F'
END) as CallType
from dbo.EXT250
Where CallType in ('RM', 'CM', 'MD', 'RT') and
AccountNumber Not Like '[29]%' and
cast(replace(CallAmt, '$', '') as decimal(10, 4)) > 50.00;
如果您需要将其用作数字,那么首先为什么要将其存储为varchar?您无法使用varchar进行数学运算,无法将它们作为数字进行正确比较(如您所见),并且不需要存储“$”。在前端做一些漂亮的格式化工作,使用适当的类型进行存储,你就不会有这些问题。明白了,不过我是从一个已经以这种方式存储的文件中提取数据的。