我想将下面的DB2查询转换为SQL Server
SELECT TRANSLATE(' 11', '*', ' 0123456789') FROM SYSIBM.SYSDUMMY1
上面的查询结果是*,因为第一个参数与第三个参数中的值匹配。SQL Server中提供的等效功能是什么?SQL Server有一个TRANSLATE函数,但功能不同。
*
TRANSLATE
mwkjh3gx1#
在DB2中,TRANSLATE(' 11', '*', ' 0123456789')的结果是*(DB 2 Fiddle)在SQL Server中,您需要使用(SQL Server Fiddle)
TRANSLATE(' 11', '*', ' 0123456789')
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函数本身中没有内置填充逻辑。而且,第二个和第三个参数的顺序在两个系统之间是相反的。
to-string
from_string
1条答案
按热度按时间mwkjh3gx1#
在DB2中,
TRANSLATE(' 11', '*', ' 0123456789')
的结果是*
(DB 2 Fiddle)在SQL Server中,您需要使用(SQL Server Fiddle)
DB2版本将使用by default隐式地用空格填充
to-string
,以匹配from_string
的长度。如果to-string的长度小于from-string的长度,则使用填充符或空格将to-string填充到from-string的长度
在SQL Server中,您需要在调用该函数之前对
to-string
执行任何此类操作,否则将出现以下错误TRANSLATE内置函数的第二个参数和第三个参数必须包含相同数量的字符。
SQL Server在
TRANSLATE
函数本身中没有内置填充逻辑。而且,第二个和第三个参数的顺序在两个系统之间是相反的。