Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将“$”置于flot值之前时,在十进制值之后返回失败_Sql_Sql Server 2012_Concatenation - Fatal编程技术网

Sql 将“$”置于flot值之前时,在十进制值之后返回失败

Sql 将“$”置于flot值之前时,在十进制值之后返回失败,sql,sql-server-2012,concatenation,Sql,Sql Server 2012,Concatenation,我正在寻找快速解决方案,但我可以按照建议的方式更改逻辑: CREATE TABLE #tmpTable(id INT, exposure FLOAT) INSERT INTO #tmpTable SELECT 1, 171325.69 SELECT '$ '+cast(exposure AS VARCHAR) Exposure FROM #tmpTable --OR-- SELECT concat('$ ',exposure) Exposure FROM #tmpTable DROP TA

我正在寻找快速解决方案,但我可以按照建议的方式更改逻辑:

CREATE TABLE #tmpTable(id INT, exposure FLOAT)
INSERT INTO #tmpTable
SELECT 1, 171325.69

SELECT '$ '+cast(exposure AS VARCHAR) Exposure FROM #tmpTable
--OR-- 
SELECT concat('$ ',exposure) Exposure FROM #tmpTable

DROP TABLE #tmpTable

--Output
Exposure
$ 171326

--Desired
$ 171326.69
我认为,这种方式不是绝对的,所以,请帮助我解决这个问题。

这应该可以:

SELECT '$' + CONVERT(VARCHAR, CONVERT(DECIMAL(8,2), exposure))
FROM #tmpTable
这应该起作用:

SELECT '$' + CONVERT(VARCHAR, CONVERT(DECIMAL(8,2), exposure))
FROM #tmpTable
将表设置为数字将解决您的问题,并使用这两种方法返回预期结果


将表设置为数字将解决您的问题,并使用这两种方法返回预期结果。

然后使用将列暴露的数据类型更改为十进制

            cREATE TABLE #tmpTable(id INT, exposure DECIMAL(8,2))
            INSERT INTO #tmpTable
            SELECT 1, 171325.69
            select * from #tmpTable

            SELECT '$ '+cast(exposure AS VARCHAR) Exposure FROM #tmpTable
            --OR-- 
            SELECT concat('$ ',exposure) Exposure FROM #tmpTable
如果不想将数据类型更改为十进制,则使用以下查询:

            SELECT '$' + CONVERT(VARCHAR, CONVERT(DECIMAL(8,2), exposure))
            FROM #tmpTable

使用将列暴露的数据类型更改为decimal然后

            cREATE TABLE #tmpTable(id INT, exposure DECIMAL(8,2))
            INSERT INTO #tmpTable
            SELECT 1, 171325.69
            select * from #tmpTable

            SELECT '$ '+cast(exposure AS VARCHAR) Exposure FROM #tmpTable
            --OR-- 
            SELECT concat('$ ',exposure) Exposure FROM #tmpTable
如果不想将数据类型更改为十进制,则使用以下查询:

            SELECT '$' + CONVERT(VARCHAR, CONVERT(DECIMAL(8,2), exposure))
            FROM #tmpTable

从tmpTable选择concat“$”有什么问题?您可能需要一个cast选择concat“$”有什么问题,从tmpTable曝光?您可能需要一个解决方案非常感谢,它运行良好,因此被称为从根本上解决:非常感谢,它运行良好,因此被称为从根本上解决:这正是我从Tim&Jens的上述答案中得到的,无论如何,感谢您的努力。这正是我从Tim&Jens的上述答案中得到的,谢谢你的努力。