将两个数字合并到varchar中

时间:2013-12-04 11:31:10

标签: sql oracle concat

如何在sql函数中将两个数字合并到varchar中?

函数输出是varchar(40),两个数字是函数的参数。

我发现了这个: siteowner:= concat(eov_y,eov_x); 但是效果不好。

siteowner是输出。我正在使用Oracle 10g。

for examlpe eov_y = 234543 and eov_x = 675654,输出将是siteowner = 234543/675654.

1 个答案:

答案 0 :(得分:0)

可能有更有效的方法来做到这一点,但这应该有效

LEFT(CAST(@eov_y AS varchar) + CAST(@eov_x AS varchar), 40)

为清楚起见,这里有一个如何使用

的例子
CREATE FUNCTION mergeNumbers 
(
    @eov_y INT,
    @eov_x INT
)
RETURNS varchar(40)
AS
BEGIN
    RETURN LEFT(CAST(@eov_y AS varchar) + CAST(@eov_x AS varchar), 40);
END

可以使用

调用
SELECT dbo.mergeNumbers(11244,456);

这假设是SQL Server

根据评论,我没有Oracle数据库来尝试这个,但它应该是正确的

CREATE OR REPLACE FUNCTION mergeNumbers (eov_y NUMBER, eov_x NUMBER) RETURN VARCHAR IS
   siteowner VARCHAR(40);
BEGIN
   siteowner := SUBSTR(CAST(@eov_y AS VARCHAR) + CAST(@eov_x AS VARCHAR), 40);     
   RETURN siteowner;
END;