SQL 碼農 字元組合式的T SQL

2021-06-06 10:57:26 字數 1060 閱讀 8953

這是公司的乙個辦法,可以判斷引數null值,無視這個where控制

但現在還有更好的:

exec procedure @year,@month,@area

gocreate procedure ...

@year int,

@month int,

@area varchar(10)

asbegin

declare @sqlbase varchar(2000)

declare @sqllink varchar(2000)

declare @sqlwhere varchar(2000)

set @sqlbase=' select [...],[...],[...],[...],[...]

from [tab..]'

set @sqllink=' '

set @sqlwhere='where 1=1 '

if(@year is not null and @year <> '' and @year <> ' ' )

begin

set @sqlwhere=@sqlwhere+' and year([date...]) = '''+@year+''' '

endif(@month is not null and @month <> '' and @month <> ' ' )

begin

set @sqlwhere=@sqlwhere+' and month([date...]) = '''+@month+''' '

endif(@area is not null and @area <> '' and @area <> ' ' )

begin

set @sqlwhere=@sqlwhere+' in '''+@area+''' '

end--select @sqlbase

--select @sqllink

--select @sqlwhere

exec (@sqlbase+@sqllink+@sqlwhere)

end

例項 寄生組合式繼承

寄生組合式繼承 寄生組合式繼承的基本思想是什麼?有哪些優缺點 寄生組合式繼承的基本思想是為了解決組合繼承的缺點,組合繼承呼叫了兩次父類建構函式,生成了兩個例項屬性,只不過例項上的覆蓋了原型上的屬性。用了寄生式繼承的方法,將子類原型指向父類原型,一般是object.create 與 object.se...

詳談 寄生組合式繼承

所謂寄生組合式繼承,即通過借用建構函式來繼承屬性,通過原型鏈的混成形式來繼承方法 不必為了指定子型別的原型而呼叫超型別的建構函式,我們需要的僅是超型別原型的乙個副本,本質上就是使用寄生式繼承來繼承超型別的原型,然後再將結果指定給子型別的原型。寄生組合式繼承的基本模式如下所示 function inh...

組合繼承與寄生組合式繼承

組合繼承 將原型鏈和借用建構函式的技術組合到一塊。使用原型鏈實現對原型屬性和方法的繼承,而通過借用建構函式來實現對例項屬性的繼承。超類的屬性被繼承了兩次,一次是在子類的建構函式中,使得子類例項擁有各自的屬性 一次是在子類的原型中,使得子類擁有相同的屬性。1 function supertype na...