字段类型是nvarchar,怎么在sql里做乘法运算?

whj0210 2008-10-23 03:21:07
sql语句如下:
SELECT *
FROM BTTitle
WHERE ([List Price] * [Discount Key] < 60)
[List Price] 和 [Discount Key]均为nvarchar类型,现在想对他们做乘法运算,执行以上sql提示:对数据类型而言运算符无效。运算符为 multiply,类型为 nvarchar。
...全文
1320 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
baolei1981 2008-10-24
  • 打赏
  • 举报
回复
convert cast都可以转化成float格式
denghz1982 2008-10-23
  • 打赏
  • 举报
回复
字符串里的是字符不是数字的话是转换不过来的
whj0210 2008-10-23
  • 打赏
  • 举报
回复
报错哦~类型转换不了~
whj0210 2008-10-23
  • 打赏
  • 举报
回复
各位~谢谢哦~但就是转换类型转不过来哦~郁闷呢
水族杰纶 2008-10-23
  • 打赏
  • 举报
回复
CAST 與 CONVERT
明確轉換某種資料型別的運算式為另一種資料型別。CAST 與 CONVERT 提供類似的功能。
使用 CAST:
CAST ( expression AS data_type )
使用 CONVERT:
CONVERT ( data_type [ ( length ) ] , expression [ , style ] )

fcuandy 2008-10-23
  • 打赏
  • 举报
回复
cast ...
CN_SQL 2008-10-23
  • 打赏
  • 举报
回复

SELECT *
FROM BTTitle
WHERE (convert(decimal(10,2),[List Price]) * convert(decimal(10,2),[Discount Key]) < 60)

转换一下,不过肯定要保证你的NVARCHAR数据可以转换得过来,否则依然抱错
flairsky 2008-10-23
  • 打赏
  • 举报
回复
强制转换为int

convert
Liyingyue_FFS 2008-10-23
  • 打赏
  • 举报
回复
SELECT * 
FROM BTTitle
WHERE (cast([List Price] as real) * cast([Discount Key] as real) < 60)

转换一下
天-笑 2008-10-23
  • 打赏
  • 举报
回复


sql语句如下:
SELECT *
FROM BTTitle
WHERE (convert(float,[List Price]) * convert(float,[Discount Key]) < 60)


22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧