如何在sql中selec時將數字自動加上千分號
一般若是要在畫面中呈現數字有千分號時,會在程式的時候,做字串格式化的動作
那這個動作,其實也可以在sql server中下select時就準備好,而不用到程式中再轉換一次,不過會需要用到CLR整合
如果你是使用sql server2005,則要開啟CLR整合的設定
如果是sql server 2008 ,則在dbserver上按滑鼠右鍵,選擇Facet
將clr選項設為true
接下來開啟vs2005或vs2008都可以,建立一個資料庫的sql server專案
接下來會出現要設定的資料庫參考,請加入
若有出現這個訊息,按是
之後要加一個使用者定義函數,請照下圖操作
給一個檔名,不想變的話就是加入即可
然後打開cs檔來撰寫程式碼
因為我們要用到c#的語法,所以要using Microsoft.CSharp;
並且要傳入一個decimal值,以下為程式碼
1: public static SqlString fnFormat(decimal n)
2: {
3: // 在此輸入程式碼
4: return new SqlString(string.Format("{0}","#,##0",n));
5: }
寫完之後,我們在方案按右鍵,選部署
部署成功後,回到sql server,我們可以在可程式性->函數->純量值函數下看到所設定的名稱
好啦,然後我們來測試一下結果如何?
新增一個查詢,執行下列sql語法看看囉
select dbo.fnFormat(123456) as 'is format',123456 as 'no format'
結果為…酷啊~有千分位了
‧覺得文章不錯請給我一個『讚』作為鼓勵喔!