MAX 函数不能返回空值(NULL),如果我想返回NULL或者最大值怎么办呢?
SELECT * From Table1
WHERE
(Column1 = SELECT MAX(Colunm1) FROM Table1) OR (Column1 IS NULL)
如果这样写会返回最大值和一个空值(2行结果)。如果我想返回NULL或者最大值怎么办呢?(只要一行结果)
------解决方案--------------------SELECT top 1 *
From Table1
WHERE
(Column1 = SELECT MAX(Colunm1) FROM Table1) OR (Column1 IS NULL)
--或
set rowcount 1
SELECT * From Table1
WHERE
(Column1 = SELECT MAX(Colunm1) FROM Table1) OR (Column1 IS NULL)
------解决方案--------------------SELECT top 1 *
From Table1
order by Column1 desc
------解决方案--------------------select max (case when ISNUMERIC(Colunm1)=1 then Colunm1 else null) from Table1
------解决方案--------------------create table tablenull
(
id int ,
varstr varchar(10)
)
insert into tablenull
select '5 ', 'cc ' union all select
'1 ', 'dd ' union all select
' ', 'dd '
select max (case when id =null then null else id end ) from tablenull
------解决方案--------------------create table tablenull
(
id varchar(10),
varstr varchar(10)
)
insert into tablenull
select '5 ', 'cc ' union all select
'1 ', 'dd ' union all select
'null ', 'dd '
select max (case when id =null then null else id end ) from tablenull
------解决方案--------------------SELECT * From Table1
WHERE
(isnull(Column1, ' ') = SELECT MAX(isnull(Colunm1, ' ')) FROM Table1)
isnull 转换成 ' ' 可以嘛?这样就可以用=号进行比较了
------解决方案----------------------try
select id,isnull(select max(mydate) from table2 where id=a.ID,null) as mydate
from table1 a
------解决方案--------------------最大值:
SELECT isnull((SELECT MAX(Colunm1) FROM Table1 where table1.column1=t.Colunm1),null) as value From Table1 as t
WHERE
------解决方案-------------------- SELECT isnull((SELECT MAX(Colunm1) FROM Table1 where table1.column1=t.Colunm1),null) as value From Table1 as t
------解决方案----------------------這樣不是可以了嗎?
SELECT table1.id, mydate=(select max(mydate) from table2 where id=table1.id)
FROM table1 LEFT OUTER JOIN table2 ON table1.id = table2.id
------解决方案--------------------这样试试
如果要返回最大mydate 对应 的school :
SELECT table1.id, table2_1.mydate,table2_2.school
FROM table1 LEFT OUTER JOIN
(select id,MAX(mydate) as mydate from table2 group by id ) table2_1
ON table1.id = table2_1.id
inner join table2 table2_2 ON table2_1.id = table2_2.id and table2_1.mydate = table2_2.mydate