【发布时间】:2017-03-17 08:23:47
【问题描述】:
我有一个在 postgres 上运行的查询,我需要对其进行转换,因为它应该可以在 MS-SQL Server 上运行。
case when position('.' in campo30) >= 1
then CAST(replace(replace(CAMPO30,'.',''),',','.') AS FLOAT)
else CAST(replace(CAMPO30,',','.') AS FLOAT)
end
MS-SQL Server 的等效代码是什么?
【问题讨论】:
-
标头说“to SQL”,这意味着 ANSI SQL,但是你标记了 MySQL。你要哪一个?
-
同意 jarlh。但我不会说,sql 意味着 ansi sql,更多,postgresql 也是一种 sql 方言。所以OP需要指定他想要转换的方言(或ansi sql)。 + OP 应该发布他到目前为止所尝试的内容。我认为这只是“有人为我做这件事,我不想”
-
猜测,它们的意思是ms-sql,但认为“SQL”的意思是“Microsoft SQL 服务器”,而mysql 标签只是由于误解 MySQL 和 PostgreSQL 之间的差异而产生的垃圾邮件。他们的另一个问题stackoverflow.com/q/42417364/398670 指的是“转换失败”,这是一个 SQL Server 错误。
-
@Ruben,请提供完整和明确问题。还要解释你已经尝试过的。这不是一个代码编写服务,它是为了帮助你,如果你遇到困难,不要为你做这一切。
-
抱歉我的英语不好,我认为我的问题与转换表达式的正确 sintax 有关,因为在 microsoft sql server management studio 中不起作用:( 例如 postiion 无法识别
标签: sql sql-server postgresql