一般若是要在畫面中呈現數字有千分號時,會在程式的時候,做字串格式化的動作

那這個動作,其實也可以在sql server中下select時就準備好,而不用到程式中再轉換一次,不過會需要用到CLR整合

如果你是使用sql server2005,則要開啟CLR整合的設定

image

image 

如果是sql server 2008 ,則在dbserver上按滑鼠右鍵,選擇Facet

image '

將clr選項設為true

image

接下來開啟vs2005或vs2008都可以,建立一個資料庫的sql server專案

image

接下來會出現要設定的資料庫參考,請加入

image

若有出現這個訊息,按是

image

之後要加一個使用者定義函數,請照下圖操作

image

給一個檔名,不想變的話就是加入即可

image

然後打開cs檔來撰寫程式碼


image

因為我們要用到c#的語法,所以要using Microsoft.CSharp;

並且要傳入一個decimal值,以下為程式碼

public static SqlString fnFormat(decimal  n)
{
     // 在此輸入程式碼
     return new SqlString(string.Format("{0}","#,##0",n));
}


寫完之後,我們在方案按右鍵,選部署

image

部署成功後,回到sql server,我們可以在可程式性->函數->純量值函數下看到所設定的名稱


image

好啦,然後我們來測試一下結果如何?

新增一個查詢,執行下列sql語法看看囉

select dbo.fnFormat(123456) as  'is format',123456 as 'no format'

 

 

 

 

 

結果為…酷啊~有千分位了

image

丫德 發表在 痞客邦 PIXNET 留言(0) 人氣()