【发布时间】:2013-08-20 19:51:51
【问题描述】:
我有桌子:
CREATE TABLE [address_tabletype] (
[CONTROL_NUMBER] [varchar](12) NULL,
[ADDRESS1] [varchar](50) NULL,
[ADDRESS2] [varchar](50) NULL,
[CITY] [varchar](50) NULL,
[STATE] [varchar](2) NULL,
[ZIP] [varchar](10) NULL
)
GO
并且,假设我有以下行:
2506387 1 2 3 4 5
2506394 1 2 3 4 5
2506403 1 2 3 4 5
我想看起来像:
2506387|1|2|3|4|5~2506394|1|2|3|4|5~2506403|1|2|3|4|5
我什么都没试过,因为我真的不知道从哪里开始。
我正在使用 SQL Server 2008 R2,并将使用临时表来构建此字符串。
编辑
我正在使用它传递给第 3 方 CLR 函数,该函数绝对需要以这种方式分隔字符串。我计划将它发送给函数,将其返回给 SP,将其分解为原始形式,然后将结果返回给 SP 的调用者。
谢谢。
【问题讨论】:
-
您是从数据库中提取这些信息吗?我问是因为一旦从数据库中提取这些字符串,操作起来会容易得多。
-
是的。这是在一个存储过程中,它将接受使用表定义构建的选择语句。我尝试了 1000 种不同的方法来达到这一点,这是我的环境中唯一适用的解决方案。
-
如果
|和~恰好出现在数据中,您是否有转义或编码的计划? -
我计划在创建此字符串之前删除不需要/不必要/有害的字符。
标签: sql sql-server stored-procedures concatenation delimiter