[转载]实现PadLeft的SQL脚本
2012-02-10 16:02
375 查看
C#有个函数PadLeft函数:右对齐此实例中的字符,在左边用空格或指定的 Unicode 字符填充以达到指定的总长度。SQL中我们也可能有这种需求.比如字符串希望保持7位不足7位前面用0补全.
1 -------- 0000001
109 ------ 0000109
0987 ----- 0000987
(
@len int,
@string VARCHAR(max),
@padchar CHAR(1))
RETURNS VARCHAR(255) AS
BEGIN
RETURN RIGHT(
REPLICATE(@padchar, @len) + CONVERT (VARCHAR(MAX), @string),
@len
)
END
GO
(
@len int,
@string VARCHAR(max),
@padchar CHAR(1))
RETURNS VARCHAR(255) AS
BEGIN
RETURN LTRIM(RTRIM(
CASE
WHEN LEN(@string) < @len
THEN REPLACE(SPACE(@len - LEN(@string)), ' ', @padchar) + @string
ELSE @string
END
)
)
END
GO
(
@len int,
@string VARCHAR(max),
@padchar CHAR(1)
)
RETURNS VARCHAR(max)
AS
BEGIN
RETURN ISNULL(REPLICATE(@padchar, @len - LEN(@string)), '')
+ CAST(@string AS VARCHAR)
END
GO
调用示例:
select dbo.PadLeft(7,'123','0') --0000123
原载:IT智库网 链接:http://www.it118.org/specials/c9fba99e-4401-49cf-8256-ac3c1a34c0d9/a483105c-9912-4ef6-92e8-091a28510944.htm
1 -------- 0000001
109 ------ 0000109
0987 ----- 0000987
解决方案1:使用RIGHT,REPLICATE函数
CREATE FUNCTION dbo.PadLeft(
@len int,
@string VARCHAR(max),
@padchar CHAR(1))
RETURNS VARCHAR(255) AS
BEGIN
RETURN RIGHT(
REPLICATE(@padchar, @len) + CONVERT (VARCHAR(MAX), @string),
@len
)
END
GO
解决方案2:使用REPLACE和SPACE函数
CREATE FUNCTION dbo.PadLeft(
@len int,
@string VARCHAR(max),
@padchar CHAR(1))
RETURNS VARCHAR(255) AS
BEGIN
RETURN LTRIM(RTRIM(
CASE
WHEN LEN(@string) < @len
THEN REPLACE(SPACE(@len - LEN(@string)), ' ', @padchar) + @string
ELSE @string
END
)
)
END
GO
解决方案3:使用REPLICATE和ISNULL函数
CREATE FUNCTION dbo.PadLeft(
@len int,
@string VARCHAR(max),
@padchar CHAR(1)
)
RETURNS VARCHAR(max)
AS
BEGIN
RETURN ISNULL(REPLICATE(@padchar, @len - LEN(@string)), '')
+ CAST(@string AS VARCHAR)
END
GO
调用示例:
select dbo.PadLeft(7,'123','0') --0000123
原载:IT智库网 链接:http://www.it118.org/specials/c9fba99e-4401-49cf-8256-ac3c1a34c0d9/a483105c-9912-4ef6-92e8-091a28510944.htm
相关文章推荐
- 在.net执行sql脚本的简单实现
- sql 布尔盲注 python脚本实现
- 利用.net(C#)执行sql脚本的简单实现
- Oracle中实现MySQL show index from table命令SQL脚本分享
- SQL升级脚本实现按版本差异化升级(优化)
- 在.net执行sql脚本的简单实现
- 每个分类取最新的几条的SQL实现(转载记录)
- java调用mysql的工具类实现数据库远程备份,还原,生成创建表的sql脚本
- SQL升级脚本实现按版本差异化升级
- PL/SQL Developer 操作导出数据脚本、数据 -转载
- ASP.NET(C#)执行.SQL脚本实现数据库建表
- 【转载】利用SqlBulkCopy实现网上答题系统
- Java中实现String.padLeft和String.padRight
- sql语法中的inner join on, left join on和 right join on的区别和详细使用方法(转载)
- JS实现PadLeft功能
- SQL Server T-SQL LPAD & RPAD Functions (String Padding Equivalent to PadLeft & PadRight)
- 利用 Ant 的 SQL Task 来实现自己的 Java 执行 SQL 脚本文件的功能
- 客户端实现PadLeft
- 写MySQL存储过程实现动态执行SQL ——复制转载