有没有办法找到表中任何列或任何数据类型的最大值?
让我更多地了解这一点。如果我有一个包含10列的表,而某些列的数据类型为int,有些列具有十进制数据类型。是否有任何sql函数可以从该表中获取最大的“数值”值?
P_ID Price Quantity CreateDate UpdateDate
1 5.99 60 2014-09-02 07:06:16.000 2014-09-02 07:06:16.000
2 45 20 2014-09-02 07:06:16.000 2014-09-02 07:06:16.000
3 29.99 35 2014-09-02 07:06:16.000 2014-09-02 07:06:16.000
4 95 10 2014-09-02 07:06:16.000 2014-09-02 07:06:16.000
5 199 20 2014-09-02 07:06:16.000 2014-09-02 07:06:16.000
编辑:我给出的例子只是一个例子而不是实际数据。在示例中,我希望能够看到'199'作为结果。我知道MAX(Price)会给我199但我不能在我的实际表格中假设这一点。所以我需要的东西会给我约50000条记录的最大值...... 如果可能的话,我需要一些可以在任何桌子上工作的通用......
答案 0 :(得分:1)
好吧,您可以使用从syscolumns和systypes中选择的组合。 Systypes为您提供长度和精度,可用于提供您想要的信息吗?
答案 1 :(得分:1)
怎么样
select max(value)
from (
select P_ID as value from yourtable
union all
select Price from yourtable
union all
select Quantity from yourtable
) as allTogether
答案 2 :(得分:1)
试试这个,不幸的是你必须列出所有列。如果它们是相同类型会更容易:
SELECT max(val)
FROM
(SELECT CAST(p_id as decimal(11,2)) p_id,
CAST(Price as decimal(11,2)) Price,
CAST(Quantity as decimal(11,2)) Quantity
FROM yourtable) as p
UNPIVOT
(val FOR Seq IN
([p_id], [Price], [Quantity]) ) AS unpvt