示例:
SET NOcount ON
create TABLE ##Table([keyCol] varchar(3), [NewValues] varchar(max))
–原数据
select
[title_id]
,[title]
FROM [pubs].[dbo].[titles]
where [type] like ’p%’
–以title_id的前两个字符为参考键值,合并title到一个临时表中
insert INTO ##Table
execute [ChineseHoliday].[Helper].[joinValue]
@TableName = ’[pubs].[dbo].[titles]’
,@KeyColName = ’LEFT([title_id], 2)’
,@joinColName = ’’’《’’+[title] + ’’》’’’
,@Quote = ’,’
,@where = ’[type] like ’’p%’’’
–显示
select * FROM ##Table
–对临时表NewValues的值进行分拆
execute [ChineseHoliday].[Helper].[SpliteValues]
@TableName = ’##Table’
,@KeyColName = ’[keyCol]’
,@SpliteColName = ’[NewValues]’
,@Quote = ’,’
–删除临时表
drop TABLE ##Table
结果:
title_id title
——– ——————————————————————————-
PC1035 But Is It User Friendly?
PC8888 Secrets of Silicon Valley
PC9999 Net Etiquette
PS1372 Computer Phobic AND Non-Phobic Individuals: Behavior Variations
PS2091 Is Anger the Enemy?
PS2106 Life Without Fear
PS3333 Prolonged Data Deprivation: Four Case Studies
PS7777 Emotional Security: A New Algorithm
keyCol NewValues
—— ——————————————
PC 《But Is It User Friendly?》,《Secrets of Silicon Valley》,《Net Etiquette》
PS 《Computer Phobic AND Non-Phobic Individuals: Behavior Variations》,《Is Anger the Enemy?》,《Life Without Fear》,《Prolonged Data Deprivation: Four Case Studies》,《Emotional Security: A New Algorithm》
KeyCol NewValue
—— ——————————————
PC 《But Is It User Friendly?》
PC 《Secrets of Silicon Valley》
PC 《Net Etiquette》
PS 《Computer Phobic AND Non-Phobic Individuals: Behavior Variations》
PS 《Is Anger the Enemy?》
PS 《Life Without Fear》
PS 《Prolonged Data Deprivation: Four Case Studies》
PS 《Emotional Security: A New Algorithm》
继续:字符串的分拆
— =============================================
— Author: LzmTW
— create date: 20080108
— Description: 拆分字符串
— =============================================
create FUNCTION [Func].[Splite]
(
@Input nvarchar(max)
,@Quote nvarchar(max)
)
RETURNS
@Table TABLE
(
[ID] int identity(1,1) PRIMARY KEY
,[Value] nvarchar(max)
)
AS
BEGIN
insert @Table
select
[Value] = NewValue
FROM
(
select
SpliteCol = CONVERT(
xml
,N’’ + REPLACE(
@Input
,@Quote
,N’’) + N’’)
) a
OUTER APPLY
(
select NewValue = N.v.value(N’.’, ’nvarchar(max)’)
FROM SpliteCol.nodes(N’/root/v’) N(v)
) b
RETURN
END
示例:
定义新行,
create FUNCTION [Const].[NewLine]
(
)
RETURNS nchar(2)
AS
BEGIN
DECLARE @Result nchar(2)
select @Result = char(13) + char(10)
RETURN @Result
END
DECLARE
@Input nvarchar(max)
,@Quote nvarchar(max)
SET @Input = N’90
10
20
30
40
50
60’
SET @Quote = [Const].NewLine()
select * FROM [Func].[Splite] (@Input, @Quote)
结果
ID Value
———– ——
1 90
2 10
3 20
4 30
5 40
6 50
7 60
(7 行受影响)
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号
TechTarget
官方微博
TechTarget中国
作者
相关推荐
-
在SQL Server 2005中实现网页传递变量(一)
在网页传递变量,一般先编码,然后解码即可。如果在SQL 2000中实现这个方法,并不是件容易的事情,需要找到UrlEncode和UrlDecode原理,然后分析编码和解码字符串。
-
在SQL Server 2005中实现网页传递变量(二)
在网页传递变量,一般先编码,然后解码即可。如果在SQL 2000中实现这个方法,并不是件容易的事情,需要找到UrlEncode和UrlDecode原理,然后分析编码和解码字符串。
-
走进SQL Server 2005:十大安全举措
随着数据库系统被用作网络应用程序后台存储范围的持续扩大,对安全的关注也就越来越必要。虽然从发展的角度来看,围绕在SQL Server 2005的周围的还有不少的杂音,
-
SQL Server 2005:向系统表说再见
在不使用任何的文档的情况下,编写一个查询,从SQL Server 2000系统表中抽取索引的列表,然后列举每个索引中的字段,并判断这个字段是否按照升序或者降序进行排序。