在Microsoft SQL Server 2008時,還沒有支援字串相加的函式Concat(Concatenate),也沒有所謂的string.IsNullOrEmpty();。因此,要進行這些操作的話,需要一些小技巧來達成,以下是這篇文章的介紹。
SQL的IsNull語法如下:
IsNull(check_expression, replacement_value )
因此,我們可以利用這個函式來完成string.IsNullOrEmpty();的判斷功能。
IsNull(Table.Column, '') = ''
LTrim(IsNull(Table.Column, '')) = ''
如標題所說,要到SQL 2012才開始支援在Oracle、MySQL上面在使用的Concat指令,在此之前,請使用M$派系慣用「+」符號,其實也是很直覺啦!
SELECT Table.Column1 + '/' + Table.Column2 AS cTemp, Table.Column3 FROM Table
在SELECT VIEW時期,有時候需要進行先期的判斷,這時候你可以在SELECT的後端串上Case...Else...End結構來輔助這些判斷的需求。綜合一下上面的指令,下面的程式碼做一下範例。
SELECT CASE WHEN Table.Column1 IS NULL THEN Table.Column2 ELSE CASE WHEN IsNull(Table.Column2, '') = '' THEN Table.Column1 ELSE Table.Column1 + '/' + Table.Column2 END END AS cTemp, Table.Column3 FORM TableSQLCommand IsNullOrEmpty IsNullOrWhiteSpace COALESCE CONCAT Concatenate CaseElseEnd