2012-06-18 23 views
0

我正在創建一個ssrs報告並創建一個mockdata sql腳本。
在劇本我想插入一個十進制值,像這樣:用逗號插入小數被解釋爲兩個值

declare @tempTable table(
    aString varchar(50), 
    aDecimal decimal(5,2) 
) 

insert into @tempTable 
values ("somestring", 1,23) 

值「someString」後,實際上是用逗號作爲小數點分隔一個十進制值。 SQL雖然將其解釋爲單獨的值,並因此引發了有關列數太多的錯誤。如何去做這件事?

UPDATE
澄清:我在一個地區'。'是千位分隔符,','是小數點分隔符。
將它置於引號之間也不起作用。它給我Error converting data type varchar to numeric消息

+5

你不能使用'.'嗎? –

+0

這將是千位分隔符。因此,根據您的文化:沒有 –

+3

@BorisCallens,千位分隔符只是一個格式化分隔符,您的數據不會與此分隔符一起存儲。在應用程序中以您希望的方式格式化它,以便在將其發送給用戶時使用此數據庫。 –

回答

1

插入SQL時,逗號用於分隔值。我不知道這是什麼類型的字段,但如果它是一個INT或DECIMAL它將無法工作。

得到它的工作,把報價在他們身邊,像這樣:

insert into @tempTable 
values ("somestring", '1,23') 

最好的將是:

  1. 如果它是一個小數,使用。作爲逗號並在之後操作字符串。
  2. 如果它是一個1000 sepeartor,刪除它,您可以顯示它時
+0

不知道它是不是ssrs的東西,但我試過引號,它給了我一個錯誤。也會把它放在OP中。 –

+0

什麼類型的db字段是數字?十進制?你在用什麼語言編程? – OptimusCrime

+0

它是一個十進制(5,2),它是在報告服務中執行的MS-SQL。更新OP –

1

要指定一個號碼在SQL腳本恆定做到這一點,你應該遵循SQL 語法規則,不區域設置。語法規定您使用.作爲小數分隔符。至於千分離器,它們根本不用。

注意,這是在嚴格的腳本約編碼您的數據,而不是顯示他們。顯示是您的語言環境設置的重要位置,如果它們是爲了您應該得到您的輸出相應的格式:小數分隔符作爲逗號,千分隔符作爲句號。

+0

我也這麼認爲。但ssrs報告顯示不同 –