首页 新闻 赞助 找找看

.net Compute的用法

0
悬赏园豆:10 [已解决问题] 解决于 2020-01-02 17:43


“ZJE”这个字段是string类型的,
这个要怎么处理呀?

CodePanda的主页 CodePanda | 初学一级 | 园豆:13
提问于:2019-12-03 12:05
< >
分享
最佳答案
0

sql有转换字符串为数值的函数,先调用那个,再sum

/*
 Navicat Premium Data Transfer

 Source Server         : LocalDB
 Source Server Type    : SQL Server
 Source Server Version : 13004001
 Source Host           : (LocalDB)\MSSQLLocalDB:1433
 Source Catalog        : BookStore
 Source Schema         : dbo

 Target Server Type    : SQL Server
 Target Server Version : 13004001
 File Encoding         : 65001

 Date: 06/12/2019 14:21:12
*/


-- ----------------------------
-- Table structure for test
-- ----------------------------
IF EXISTS (SELECT * FROM sys.all_objects WHERE object_id = OBJECT_ID(N'[dbo].[test]') AND type IN ('U'))
    DROP TABLE [dbo].[test]
GO

CREATE TABLE [dbo].[test] (
  [Id] int  NOT NULL,
  [TextVal] varchar(255) COLLATE SQL_Latin1_General_CP1_CI_AS  NULL
)
GO
-- ----------------------------
-- Records of test
-- ----------------------------
INSERT INTO [dbo].[test] VALUES (N'1', N'1')
GO

INSERT INTO [dbo].[test] VALUES (N'2', N'1.1')
GO

INSERT INTO [dbo].[test] VALUES (N'3', NULL)
GO

INSERT INTO [dbo].[test] VALUES (N'4', N'1.33')
GO


SELECT sum(case when t.TextVal= '' then 0 else CAST (  t.TextVal AS NUMERIC(10,2) ) end )
from test t

把你的sum(ZJM)更换为sum(case when ZJM= '' then 0 else CAST ( ZJM AS NUMERIC(10,2) )

收获园豆:10
心雨纷扬 | 菜鸟二级 |园豆:309 | 2019-12-06 14:22
其他回答(2)
0

这个如果是变量的话可以操作,但如果是制字符串的话这样肯定不能的。建议将ZJE是什么也截一下图

初夏的阳光丶 | 园豆:641 (小虾三级) | 2019-12-03 13:57

我换个问法,就是compute如何对datatable的string类型列用sum求和

支持(0) 反对(0) CodePanda | 园豆:13 (初学一级) | 2019-12-03 14:30

@CodePanda: 如果这个值是小数或者整数 你可以先int.Parse或者double.Parse转换一下进行转换然后求和 但如果你从datatable里面的值是一个字符串。是不可行的

支持(0) 反对(0) 初夏的阳光丶 | 园豆:641 (小虾三级) | 2019-12-03 14:36
0

你先把代码拆开,就明白问题了~

花飘水流兮 | 园豆:13560 (专家六级) | 2019-12-06 02:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册