2010-08-27 24 views
0
select myvalue from mytable where id=1; 

它返回10位數值(Ex: 1234567890)。
我希望這些值的格式爲1234.56.7890作爲返回值。SQL:所需格式的返回值

意味着myvalue可以返回所需格式的值而不是存儲的格式。

任何人都可以幫助我。 您的創意非常歡迎

+0

什麼是myvalue列的數據類型? – 2010-08-27 10:05:54

+0

myvalue列包含long值 – 2010-08-27 10:21:40

回答

3

這裏有一個稍微有一些混亂的選擇:

SELECT REVERSE(
    INSERT(
    INSERT(REVERSE(1234567890), 5, 0, '.'), 
     8, 0, '.')) AS formatted; 

+--------------+ 
| formatted | 
+--------------+ 
| 1234.56.7890 | 
+--------------+ 

這個工程即使是短號碼 - 例如123.

+0

感謝邁克它的工作原理 – 2010-08-27 11:56:41

0

嘗試使用Format功能。

+0

我想在我的值之間加上兩位小數。 – 2010-08-27 10:20:53

0

這是一點點昂貴的命令。但它會工作,如果你的小數點位置固定和myvalue的總是要爲10位數字

SELECT LEFT(CONVERT(varchar(10),myvalue),4) + '.' + 
SUBSTRING(CONVERT(varchar(10),myvalue),5,2) + '.' + 
SUBSTRING(CONVERT(varchar(10),myvalue),7,4) 
+0

仍然沒有工作,但感謝我得到一個想法.... – 2010-08-27 10:43:50