将DB2 TRANSLATE函数转换为SQL Server

dhxwm5r4  于 2022-11-07  发布在  DB2
关注(0)|答案(1)|浏览(267)

我想将下面的DB2查询转换为SQL Server

SELECT TRANSLATE(' 11', '*', ' 0123456789') FROM SYSIBM.SYSDUMMY1

上面的查询结果是*,因为第一个参数与第三个参数中的值匹配。
SQL Server中提供的等效功能是什么?SQL Server有一个TRANSLATE函数,但功能不同。

mwkjh3gx

mwkjh3gx1#

在DB2中,TRANSLATE(' 11', '*', ' 0123456789')的结果是*DB 2 Fiddle
在SQL Server中,您需要使用(SQL Server Fiddle

SELECT TRANSLATE(' 11', ' 0123456789', '*          ')

DB2版本将使用by default隐式地用空格填充to-string,以匹配from_string的长度。
如果to-string的长度小于from-string的长度,则使用填充符或空格将to-string填充到from-string的长度
在SQL Server中,您需要在调用该函数之前对to-string执行任何此类操作,否则将出现以下错误
TRANSLATE内置函数的第二个参数和第三个参数必须包含相同数量的字符。
SQL Server在TRANSLATE函数本身中没有内置填充逻辑。而且,第二个和第三个参数的顺序在两个系统之间是相反的。

相关问题