c VARCHAR(10)
)
INSERT INTO @table VALUES('9999')
INSERT INTO @table VALUES('8888')
INSERT INTO @table VALUES('A001')
INSERT INTO @table VALUES('A012')
SELECT MAX ( CONVERT(INT, REPLACE(c,'a','10') ) ) ,
CASE WHEN SUBSTRING( CONVERT(VARCHAR,MAX ( CONVERT(INT, REPLACE(c,'a','10') ) )),1,2) = '10' THEN
'A' + SUBSTRING( CONVERT(VARCHAR,MAX ( CONVERT(INT, REPLACE(c,'a','10') ) )),3,99999)
ELSE
CONVERT(VARCHAR,MAX ( CONVERT(INT, REPLACE(c,'a','10') ) )) END
FROM @table假设你表中的DATA_TIME字段是日期类型,如果是字符类型,需要对下列语句做修改
SQL SERVER
SELECT CONVERT(CHAR(8),DATA_TIME,112) 日期,MAX(DATA_DATA)
FROM TABLE_NAME
GROUP BY CONVERT(CHAR(8),DATA_TIME,112)
ORDER BY 1
ORACLE
SELECT TRUNC(DATA_TIME) 日期,MAX(DATA_DATA)
FROM TABLE_NAME
GROUP BY TRUNC(DATA_TIME)
ORDER BY 1
;
按照你的要求的话是不是要保留每条记录,然后每条记录再显示出当日的最大值?
如果是这样,SQL SERVER中需要原表和每日的最大值的嵌套表做关联;ORACLE用分析函数,下面是ORACLE的语句
SELECT TO_CHAR(DATA_TIME,'YYYY-MM-DD HH24:MI:SS') 时间,
DATA_DATA "当前值",
MAX(DATA_DATA) OVER(PARTITION BY TRUNC(DATA_TIME))"当日最大值"
FROM TABLE_NAME
ORDER BY 1;
1、首先打开cmd或PowerShell,进入mysql。
2、选择或者创建一个数据库,使用了以前创建的数据库test。
3、在数据库下创建表stu,表结构如图。
4、接着向stu表插入四条数据,插入后查看该表的数据。
5、再输入sql语句 update stu set credit1=82; 就可以获取一列中的最大值了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)