select
convert(float, isnull(a.value,0))
from work_info as a
where
a...
注意:convert(float,xx)雖然可以去掉小數點後末尾0,但是,當整數部不大於15位數時,小數部顯示個數=15-整數部個數;當整數部大於15位數時,小數部會四捨五入,且顯示科學計數法
eg:select
convert(float ,12345678.123456789000)
, convert(float ,123.1234567896667000)
, convert(float ,123456789333333.1234567896667000)
結果為:
12345678.1234568
123.123456789667
1.23456789333333e15
第一種:(不建議使用)
select
convert(varchar(20),convert(float, isnull(a.value,0))) + isnull(a.unit,'')
from work_info as a
where
a...
注意:①兩個isnull不可省,要不然當其中乙個值為null時,查詢出來值是null
②convert(float,xx)雖然可以去掉小數點後末尾0,但有兩個致命問題,當整數部不大於6位數時,小數部顯示個數=6-整數部個數;當整數部大於6位數時,小數部會四捨五入,且顯示科學計數法
eg:convert(float,2345.6790)-->2345.68;
convert(float,3458888.6789)-->3.45889e+006
③由於單位不是數值,所以用convert(varchar(20),)再拼接單位
第二種:(有點麻煩)
select
isnull(reverse(stuff(reverse(convert(varchar,a.value)),1,patindex('%[1-9]%',reverse(convert(varchar,a.value)))-1,'')), 0)
+ isnull(a.unit, '')
from work_info as a
where
a...
①sql sever裡自帶的reverse函式,這個函式的主要功能是把乙個字元產反轉。--select reverse('hello,world')
--將得到如下的輸出:dlrow,olleh
②sql sever裡自帶的stuff函式將字串插入到另乙個字串中。 它從第乙個字串的開始位置刪除指定長度的字元;然後將第二個字串插入到第乙個字串的開始位置。--語法:stuff ( character_expression , start , length , replacewith_expression )
③sql sever裡面有個自帶的patindex函式,返回pattern字串在表示式expression裡第一次出現的位置,起始值從1開始算。--語法格式:patindex ( '%pattern%' , expression )
--pattern字串在expression表示式裡沒找就返回0,對所有有效的文字和字串就是有效的資料型別。
SqlServer 複製中將大事務分成小事務分發
原文 sqlserver 複製中將大事務分成小事務分發 在sql server 複製中,當在發布資料庫執行1個大事務時,如一次性操作 十萬或百萬以上的資料。當運算元據在發布資料庫執行完成後 日誌讀取器 將掃瞄事務日誌,一次性傳遞到分發資料庫中。若上個事務未傳遞完成,連續執行多個事務,日誌讀取器 將掃...
sqlserver中將查詢結果拼接成字串
for xml path param 將查詢結果以xml格式輸出 select id,name from table1 for xml path path後面沒有引數時,每行資料被預設標籤包裹,每行列資料被被其列名標籤包裹。結果如下 1 holab 2name1 每行資料最外面包裹的標籤由path的...
mysql數值型別
通過mysql手冊對mysql的數值資料型別進行了乙個回顧,總結如下 mysql支援所有標準sql數值資料型別。這些型別包括嚴格資料型別 integer smallint decimal numeric,以及近似數值資料型別 float real double precision。關鍵字int是in...