SQL分割逗号的函数和用法
在程序中我们可能经常会遇到这种情况,比如要取一个listbox里面的选择项,得到的结果可能是string ID="id1,id2,id3,id4",然后我们要把这些ID插入到数据库中,同时每个id对应的是要插入一条记录。实现的方法有很多,但是如果我们通过下面这个函数(RecurrentSplit)就能简单的达到上述效果。RecurrentSplit的使用也非常简单。
例如:
select row_number()over(order by indexno desc) as seq ,* from recurrentsplit('1,2,3,4,5,',',',0,0)
这样我们就会分成5条记录,因为我的要求是一个listbox中item[i]其中最小的说明他的排序在最前头,同时排序是但SEQ的降序排列。所以在这个查询中我用row_number()over(order by indexno desc) as seq得出了他的顺序号
如下
seq indexno SplitName
1 4 5
2 3 4
3 2 3
4 1 2
5 0 1
然后就是对这个结果进行操作咯
如
--设置选择商品为推荐并按传入的降序将商品推荐排序
update zp_auction_mst
set ishot=1,hotseq = b.seq
from zp_auction_mst a,
(select row_number()over(order by indexno desc) as seq ,* from recurrentsplit(@AuctionID,',',0,0)) as b
where a.auctionid= b.splitName
搞定,就是这么简单了。。。。
CREATE FUNCTION [dbo].[RecurrentSplit]
(
@nvStr nvarchar(2000) --需要分割字符串
,@vSeparte varchar(50) --分割字符串
,@iIsHaveSeparte int --是否显示字符串
,@iIsBefore int --是否是后面的分割符(分割字符分割的顺序)
)
RETURNS @Split table
(
Ind
相关文档:
DECLARE @HDOC INT --文档句柄
DECLARE @XMLSTRING VARCHAR(200) --XML字符串
SET @xmlString ='<?xml version="1.0"?>
<ROOT>
<USER ID="1" Name="SBQCEL"/>
<USER ID="2" Name="PEACELI"/>
<USER ID="3" Name="SHEEPCHANG"/>
</ROOT>'
--使用系统存储 ......
--获得当前所有驱动器
exec master.dbo.xp_availablemedia
--获得子目录列表
exec master.dbo.xp_subdirs 'c:\'
--获得所有子目录的目录树结构
exec master.dbo.xp_dirtree 'c:\'
--订阅文件删除
declare @tempTable table (Cont varchar(50))
declare @strTemp varchar(50)
declare @dirPath varchar(50)
declar ......
【SQL】行列转换
http://space.itpub.net/519536/viewspace-609167
一、列变行
1.创建测试表test,并初始化实验数据
sec@ora10g> create table test (name_id varchar2(10), name varchar2(10));
sec@ora10g> insert into test values ('01','Andy1');
sec@ora10g> insert into test values ('01','Andy2'); ......
Access 的 SQL 中,计算相应编号的记录之间 加 减 的查询命令
例如 计算ID为 6 的 合计 减去 ID 为 2、3、4 以及加上 ID 为 5 的合计
SELECT SUM(R) AS 结果
from
(
SELECT 合计 AS R from T1 WHERE (ID = 6) UNION
SELECT -合计 AS R from T1 WHERE (ID = 2) UNION
SELECT -合计 AS R f ......
一、基础
1、说明:创建数据库
CREATE DATABASE database-name
2、说明:删除数据库
drop database dbname
3、说明:备份sql server
--- 创建 备份数据的 device
USE master
EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat'
--- 开始 备份
BACKUP DATABASE pubs TO testBack
4、说 ......