你有乙個裡面包含整數、浮點數、金額或日期的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取出 ...