如果我有兩列A和B,它們的數據類型爲nvarchar(50),其中兩個都使用貨幣代碼(例如100.00 USD)表示貨幣值,那麼如何才能我在觸發器或程序計算中只使用小數部分?SQL Server在計算中使用字符串的小數部分
例如,插入觸發器減去B的從A,值後,其中A = '300.00美元' 和B = '299.50美元':
... AS
聲明@a nvarchar(50);
declare @b nvarchar(50);
declare @ans decimal(10,2);
select @ a = i.A from inserted i;
select @ b = i.B from i插入;
BEGIN
現在我想找到@ans = @a - @b。
END
什麼複雜的是實際情況的那部分是做什麼的,用於值的範圍,在這裏我加入不同的表和輸出與「選擇測試的過程。進入「。
爲什麼不將貨幣存儲在單獨的列中 –
只是*不要*爲小數數據使用文本字段。問題是查詢,而不是SQL Server。你如何期望用*文本*進行數學運算?不要在涉及貨幣的地方執行操作。從*美元*減去*磅*有什麼意義? –
這將是理想的。不幸的是,這是一個大學項目,必須遵守標準化。具體的表格是用於預訂的,我試圖計算總價格。第三種常規形式不允許非優先屬性依賴於另一個非優先屬性,如果我將貨幣存儲在單獨的列中,情況就是如此。 – Nazgul