Oracal 中的lpad函数的功能在SQLServer中用哪个函数
发布网友
发布时间:2022-04-20 11:53
我来回答
共2个回答
热心网友
时间:2022-04-08 06:10
Oracle
第3个参数不写,默认为空格
SQL> SELECT LPAD('Ora', 8) A,
2 LPAD('Ora', 8, '*') B,
3 LPAD('Ora', 8, 'xyz') C
4 FROM
5 al;
A B C
---------------- ---------------- ----------------
Ora *****Ora xyzxyOra
SQL Server 没有这个函数
但是 单个字符的,可以通过REPLICATE 与 RIGHT的组合来实现
多个字符的,处理起来,略为复杂。
1> SELECT
2> RIGHT( REPLICATE(' ', 8) + 'Ora', 8) AS A,
3> RIGHT( REPLICATE('*', 8) + 'Ora', 8) AS B,
4> LEFT( REPLICATE('xyz', 8), 8 - Len('Ora'))
5> + 'Ora' AS C
6> go
A B C
----------- ----------- -------------
Ora *****Ora xyzxyOra
(1 行受影响)
CREATE FUNCTION LPAD(
@BaseStr VARCHAR(10),
@Size INT,
@PadChar VARCHAR(10) = ' '
)
RETURNS VARCHAR(100)
AS
BEGIN
DECLARE @returnVal VARCHAR(100);
IF LEN(@PadChar) = 0
SET @returnVal =
RIGHT(REPLICATE(' ', @Size) + @BaseStr, @Size);
ELSE IF LEN(@PadChar) = 1
SET @returnVal =
RIGHT(REPLICATE(@PadChar, @Size) + @BaseStr, @Size);
ELSE
SET @returnVal =
LEFT(
REPLICATE(@PadChar, @Size / LEN(@PadChar)),
@Size - LEN(@BaseStr)) + @BaseStr;
RETURN @returnVal;
END
go
1>
2> SELECT
3> dbo.LPAD('Ora', 8, ' ') A,
4> dbo.LPAD('Ora', 8, '*') B,
5> dbo.LPAD('Ora', 8, 'xyz') C
6> go
A B C
Ora *****Ora xyzxyOra
热心网友
时间:2022-04-08 07:28
用REPLICATE函数。