2014-11-05 63 views
0

我有一個varchar(256)AttributeVal,其中包含所有不同類型的文本值。

我需要找出$ 5000,$ 2000等所有$值&爲他們添加千位分隔符(僅適用於這些值,但不適用於該列中存在的其他文本值)。

因此,更新的值應該看起來像$ 5,000 & $ 2,000。

如果我使用下面的查詢,那麼它最終將轉換所有值&我需要手動拼接$ :(

replace(convert(varchar, convert(Money, AttributeVal), 1), '.00', '') 

注:我知道,這些類型的格式應在被照顧申請結束,但我們的客戶堅信有這些定製存儲在DB只。

+0

請將輸出以更多低級方式發佈 – mohan111 2014-11-05 07:34:52

+0

聲明@t varchar(20)='$ 2000' select +'$'+ replace(convert(varchar,convert(Money,@t),1),'。 00' , '') – mohan111 2014-11-05 07:37:51

回答

0

試試這個

SELECT '$'+ PARSENAME(Convert(varchar,Convert(money,convert(Money, 100000)),1),2) 

輸出:$ 100,000個

希望這有助於!

0

嘗試用這個,這將花費千個分隔符的護理:-)

'$'+convert(varchar(50), CAST(amount as money), -1) amount 

樣品

;with cte (amount) 
as 
(
    select 5000 union all 
    select 123254578.00 union all 
    select 99966.00 union all 
    select 0.00 union all 
    select 6275.00 union all 
    select 18964.00 union all 
    select 1383.36 union all 
    select 26622.36 


) 
select '$'+convert(varchar(50), CAST(amount as money), -1) amount 
from cte 
0

這是我對這個問題:

select coalesce(cast(try_convert(money, value) as varchar(50)), value) converted 
from (
    values ('50') 
     , ('5000') 
     , ('3000.01') 
     , ('text') 
    ) samples(value) 

和輸出:

converted 
-------------------------------------------------- 
50.00 
5000.00 
3000.01 
text 

(4 row(s) affected)