如何在Microsoft SQL Server 2005中執行以下操作?SQL Server中格式良好的數字
DECLARE @PCT Decimal(4,1)
SET @PCT=3.1
SELECT
WHEN @PCT = CAST(@PCT AS Int) THEN CAST(CAST(@PCT AS Int) AS Varchar)
ELSE CAST(@PCT AS Varchar) END AS newPct
我試圖放棄.0如果百分比結束在一個整數。
如何在Microsoft SQL Server 2005中執行以下操作?SQL Server中格式良好的數字
DECLARE @PCT Decimal(4,1)
SET @PCT=3.1
SELECT
WHEN @PCT = CAST(@PCT AS Int) THEN CAST(CAST(@PCT AS Int) AS Varchar)
ELSE CAST(@PCT AS Varchar) END AS newPct
我試圖放棄.0如果百分比結束在一個整數。
你有什麼,如果你添加CASE關鍵字
DECLARE @PCT Decimal(4,1)
SET @PCT=3.1
SELECT
CASE WHEN @PCT = CAST(@PCT AS Int) THEN CAST(CAST(@PCT AS Int) AS Varchar)
ELSE CAST(@PCT AS Varchar) END AS newPct
D'oh!案件!難怪它不工作! – 2010-12-20 20:33:24
我接受了這個答案,因爲我還添加了WHEN @PCT IS NULL THEN'0'子句。 – 2010-12-21 02:46:56
嘗試強制轉換爲浮動第一會工作。從浮點數轉換爲varchar的規則與將小數轉換爲varchar的規則不同。以下似乎適用於我:
select cast(cast(@PCT as float) as varchar) as 'newPct'
是否有理由在SQL中執行此操作而不是您的調用應用程序? – JNK 2010-12-20 20:29:40
我把我所有的邏輯儘可能接近數據。 – 2010-12-20 21:15:14