关于SQL SERVER 数据拆分
if object_id('tb') is not null drop table tb
go
create table tb([A] varchar(10),[B] int)
insert tb
select 'bcd',1 union all
select 'bcde',2 union all
select 'cd',3
go
个人分析这道题的思路是:
通过Substring() 来循环分割 B 列下的字符串。。
--想得到的结果:
/**
a b
---- -----------
b 1
c 1
d 1
b 2
c 2
d 2
e 2
c 3
d 3
(所影响的行数为 9 行)
**/
(1):select
substring(a.A,b.number,1) as a,a.b
from tb a,
master..spt_values b
where b.type='P' and b.number>0
and b.number<len(a.a)
/**
a b
---- -----------
b 1
c 1
d 1
b 2
c 2
d 2
e 2
c 3
d 3
(所影响的行数为 9 行)
**/
(2)
SELECT TOP 100 ID=IDENTITY(INT,1,1) INTO #NUM from SYS.SYSCOLUMNS A,SYS.SYSCOLUMNS B
SELECT
A.b,[VALUE]=SUBSTRING(A.a,B.ID,1)
from
#TB A,#NUM B
WHERE
b.id <=len(a.a)
/*
b VALUE
----------- -----
1 b
1 c
1 d
2 b
2 c
2 d
2 e
3 c
3 d
相关文档:
假如你写过很多程序,你可能偶尔会碰到要确定字符或字符窜串否包含在一段文字中,在这篇文章中,我将讨论使用CHARINDEX和PATINDEX函数来搜索文字列和字符串。我将告诉你这两个函数是如何运转的,解释他们的区别。同时提供一些例子,通过这些例子,你可以可以考虑使用这两个函数来解决很多不同的字符搜索的问题。
CHARI ......
所谓SQL注入式攻击,就是攻击者把SQL命令插入到Web表单的输入域或页面请求的查询字符串,欺骗服务器执行恶意的SQL命令。在某些表单中,用户输入的内容直接用来构造(或者影响)动态SQL命令,或作为存储过程的输入参数,这类表单特别容易受到SQL注入式攻击。常见的SQL注入式攻击过程类如:
⑴ 某个ASP.NET Web应用有一个 ......
--sql server 2005
-- 1. 表结构信息查询
-- ========================================================================
-- 表结构信息查询
-- 邹建 2005.08(引用请保留此信息)
-- ========================================================================
SELECT
TableName=CASE WHEN ......
今天搞的,帮同事查询数据,先写个触发器,截取http://www.chinaroyalgroup.cn/aspnet_client/system_web/2_0_50727/dispbbs.asp?boardid=1&id=836里的域名
IF EXISTS (SELECT name from sysobjects
WHERE name = 'gs_MySub' AND type = 'P')
DROP PROCEDURE gs_MySub
......
如果结果的长度大于服务器参数max_allowed_packet,字符串值函数返回NULL。见10.2.3 调节服务器参数。
对于针对字符串位置的操作,第一个位置被标记为1。
ASCII(str)
返回字符串str的最左面字符的ASCII代码值。如果str是空字符串,返回0。如果str是NULL,返回NULL。
mysql> select ASCII('2');
-> ......