回复 3楼 mxbing1984
谢谢版主的答复,学到了很多,还是有地方不理解,把当前记录的price1到4用union all 拼成一个表(取名T),然后取得这个表的最小值并命名为MINIPrice,是否能这么理解
select min([price1])
from (select [price1] from table1
union all select [price2]
from table1
union all select [price3] from table1)T
可这么理解,最后出来的最小值是不是1行1个最小值?
原代码
select [ID],
(select min([price1])
from (select [price1]
union all select [price2]
union all select [price3])T) AS [MINIPrice]
from table1
为什么能出来的是所有行的,不同的横向最小值。
贴出试运行代码如下:
use tempdb
go
create table table1 (ID int,price1 int,price2 int,price3 int)
insert table1 select 1,61,90,90
insert table1 select 2,601,72,85
insert table1 select 3,601,120,190
go
select [ID],
(select min([price1])
from (select [price1]
union all select [price2]
union all select [price3])T) AS MINIPrice
from table1
(原代码,出来结果统计所有行横向最小值)
--select [ID],
--(select min([price1])
--from (select [price1] from table1
--union all select [price2]
from table1
--union all select [price3] from table1)T )AS MINIPrice
--from table1
(这段按我理解的改的,出来的是3行同一个值,为什么呢?)
drop table table1
[
本帖最后由 dqk911 于 2015-1-12 22:12 编辑 ]