確定幾個SQL Server欄中的最大值

2021-04-17 04:46:41 字數 1506 閱讀 7857

你有乙個裡面包含整數、浮點數、金額或日期的n列sql

server表,而你的任務是返回這些列中某一行的最大值。你甚至被要求一次求幾行的最大值,返回乙個記錄組(record set)。

第乙個任務暗示你可能預先不知道要比較哪一列或比較多少列,但事實並非總是如此。可能你恰恰知道你要比較哪些列,並且知道不可能增加任何新列。另一方面,你可能必須做好預防計畫,預計到可能會增加一些新列。寫乙個剛好比較n個值的函式可以完成這個任務,但它在其它情況下又有多大用處呢?

假設下面是你的表:

create table [dbo].[minmax](

[minmaxid] [int] identity(1,1) not null,

[value1] [int] null,

[value2] [int] null,

[value3] [int] null,

[value4] [int] null,

constraint [pk_minmax]primary key clustered

[minmaxid] asc

)with (pad_index= off, ignore_dup_key = off) on [primary]

) on [primary]

注意,表定義允許在它的四個列中使用null值。在大多數情況下,我會盡量應用非null列,但在這種情況下,乙個或幾個日期列中很有可能包含null值;我當然不希望僅僅為了逃避非null問題而輸入錯誤的資料。於是我把所有日期列定義為null列。圖1給出了一些你可以插入表中的樣本值。

minmaxid

value1

value2

value3

value4

1

1

3

5

7

2

10

5

7

9

3

3

13

27

4

4

10

81

17

54

確定幾個SQL Server欄中的最大值

你有乙個裡面包含整數 浮點數 金額或日期的n列sql server表,而你的任務是返回這些列中某一行的最大值。你甚至被要求一次求幾行的最大值,返回乙個記錄組 record set 第乙個任務暗示你可能預先不知道要比較哪一列或比較多少列,但事實並非總是如此。可能你恰恰知道你要比較哪些列,並且知道不可能...

SQLServer中的幾個重要時間函式

函式 引數 功能 getdate 返回系統目前的日期與時間 datediff interval,date1,date2 以interval 指定的方式,返回date2 與date1兩個日期之間的差值 date2 date1 dateadd interval,number,date 以interval...

sqlserver中,sql程式設計的幾個小常

sqlserver中,sql程式設計的幾個小常 1 取出剛剛插入 刪除 的資料select 欄位名 from inserted deleted 2 對於update實際上是先delete然後再insert所以如果想得到update前後的資料值,應該先從deleted取出,然後從inserted取出 ...