sql ·Ö¸î×Ö·û´® Êä³ö
ʾÀý£º
´«Èë¶à¸öEmailµØÖ·,ͨ¹ýÿ¸öEmailµØÖ·¼äµÄ','·Ö¸ô·û£¬½«¸÷EmailµØÖ··Ö¿ª¡£
SELECT * from dbo.uf_Split('aa@aa.com,bb@bb.com,cc@cc.com,dd@dd.com',',');
²éѯ½á¹û£º
subid autoid
aa@aa.com 1
bb@bb.com 2
cc@cc.com 3
dd@dd.com 4
ÏÂÃæÊÇ[uf_Split]·½·¨µÄ¾ßÌåʵÏÖ£º
CREATE FUNCTION [dbo].[uf_Split](@str VARCHAR(max),@splitchar CHAR(1))
RETURNS @t TABLE(subid VARCHAR(1000),autoid INT) AS
/*
subject:splitº¯Êý(ĿǰֻÄܶԵ¥¸ö×Ö·û½øÐзָ²»ÄÜÒÔ´Ê×鷽ʽ·Ö¸î)
author:kq zhou
create date:2009-4-1
*/
BEGIN
DECLARE @substr VARCHAR(max)
SET @substr=@str
DECLARE @i INT,@j INT
SET @j=LEN(REPLACE(@str,@splitchar,REPLICATE(@splitchar,2)))-LEN(@str)--»ñÈ¡·Ö¸î·û¸öÊý
IF @j=0
BEGIN
INSERT INTO @t VALUES (@substr,1) --ûÓзָî·ûÔò²åÈëÕû¸ö×Ö´®
END
ELSE
BEGIN
SET @i=0
DECLARE @m int
WHILE @i<=@j
BEGIN
IF(@i<@j)
BEGIN
SET @m=CHARINDEX(@splitchar,@substr)-1 --»ñÈ¡·Ö¸î·ûµÄǰһλÖÃ
INSERT INTO @t VALUES(LEFT(@substr,@m),@i+1)
SET @substr=RIGHT(@substr,LEN(@substr)-(@m+1)) --È¥³ýÒÑ»ñÈ¡µÄ·Ö¸î´®£¬µÃµ½»¹ÐèÒª¼ÌÐø·Ö¸îµÄ×Ö·û´®
END
ELSE
BEGIN
INSERT INTO @t VALUES(@substr,@i+1)--¶Ô×îºóÒ»¸ö±»·Ö¸î
Ïà¹ØÎĵµ£º
Èý²½×ß¡£
<1>½¨Á¢Êý¾ÝÔ´
´ò¿ª¿ØÖÆÃæ°å—>¹ÜÀí¹¤¾ß—>Êý¾ÝÔ´ (ODBC)£¬»òÖ±½ÓÔËÐÐodbccp32.cplÃüÁî¡£´ò¿ªODBCÊý¾ÝÔ´¹ÜÀíÆ÷¡£Ìí¼ÓÒ»¸öϵͳÊý¾ÝÔ´¡£Ñ¡ÔñSql Server×÷ΪÊý¾ÝÔ´µÄÇý¶¯³ÌÐò£¬¼üÈëÊý¾ÝÔ´Ãû³Ædemo£¬Ñ¡ÔñºÏÊʵÄsql server·þÎñÆ÷£¬È»ºóһ·ĬÈÏÏÂÈ¥¡££¨ÔÚºóÃæµÄ²½ÖèÖпÉÒÔÑ¡ÔñÐèÒª½øÐз´Ïò¹¤³Ì ......
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>'
--ʹÓÃϵͳ´æ´¢ ......
ÒÔÏÂÊÇ·¢ÔÚ÷×ÓÂÛ̳µÄÌù×Ó£¬×ª·¢¹ýÀ´£¬Ï£Íû¸øÓõÃ×ŵĺüÓѲο¼¡£
ÎҵijÌÐòÒÔǰһֱÊÇÓû¨Éú¿Ç°ó¶¨IPʵÏÖµÄÔ¶³Ì£¬ÓÉÓÚ¿Í»§·þÎñÆ÷ºÍ¿Í»§¶Ë¶¼ÊÇͨ¹ý¿í´øÉÏÍø£¬Ò»°ãµÄ²Ù×÷£¨¿ª½ø»õµ¥¡¢ÏúÊÛµ¥µÈ£©ËÙ¶ÈÒ²»¹²»´í£¬µ«ÊÇÔÚÔ¶³Ì¿Í»§¶ËÐÞ¸ÄÉÌÆ·×ÊÁÏ£¨10000¶àÌõ¼Ç¼£©¡¢²éѯһ¶ÎʱÆÚµÄ½øÏú´æÁ÷Ë®£¨Ò»ÖÜ5000ÌõÒÔÉÏ£©µÈÉæ¼°µ½È¡¼Ç¼Á¿´óµ ......
ORACLEÓëSQL SERVERÓï·¨Çø±ð
Ò»¡¢Êý¾ÝÀàÐÍ
ORACLEÓëSQL SERVERÔÚÊý¾ÝÀàÐ͵ĶԱÈÈçÏ£º
SQL SERVER
ORACLE
Êý×ÖÀàÐÍ
DECIMAL[(P[, S])]
NUMBER[(P[, S])]
NUMERIC[(P[, S])]
NUMBER[(P[, S])]
FLOAT[(N)]
NUMBER[(N)]
INT
NUMBER
SMALLINT
NUMBER
TINYINT
NUMBER
MONEY
NUMBER[19,4]
SM ......
ALTER function dbo.UDF_SplitSubString
(
@Expression varchar(8000)
,@Delimiter varchar(100)
,@ int
)
returns varchar(8000)
as
begin
--declare @Expression varchar(8000)
--set @Expre ......