ورود

View Full Version : سوال: تفکیک، تجزیه و جداسازی یک رشته به عناصر تشکیل دهنده آن توسط کاراکتر جداکننده



Modifier
پنج شنبه 24 تیر 1389, 10:51 صبح
سلام

چگونه يك رشته فرستاده شده به SqlServer رو جداسازي كنم توسط يك كاراكتر خاص ؟

مانندSpilt در C# ..


ممنون.

ياعلي...

MOJTABAATEFEH
پنج شنبه 24 تیر 1389, 11:38 صبح
دوست عزیز با چه زبانی کار می کنی؟

unique1984
پنج شنبه 24 تیر 1389, 11:59 صبح
سلام. امیدوارم کد زیادی ننوشته باشم!


DECLARE @MainStr NVARCHAR(20),
@Pos INT,
@ResultStr NVARCHAR(20),
@NextPos INT

SET @MainStr='Hello,Modern,World'

SET @NextPos=0
WHILE (LEN (@MainStr)>@NextPos)
BEGIN
SET @Pos=CHARINDEX(',',@MainStr)
SET @ResultStr=SUBSTRING(@MainStr,@NextPos,@Pos)
SET @NextPos+=@pos+1
SELECT @ResultStr
END

محمد سلیم آبادی
پنج شنبه 24 تیر 1389, 12:16 عصر
با سلیقه تر، شفافتر، ساده تر و set-based تر از این روش بعید می دونم پیدا کنید، کار وطنه! اینم لینکش:
http://www.30sharp.com/ShowArticle.aspx?nid=13&did=224&AuthorID=11


--TVF for Splitting the String
CREATE FUNCTION dbo.splitter (@S VARCHAR(MAX), @D CHAR(1)) RETURNS TABLE AS
RETURN (SELECT CASE WHEN CHARINDEX(@D, @S + @D, nbr) - nbr = 0 THEN ''
ELSE SUBSTRING(@S, nbr, CHARINDEX(@D, @S + @D, nbr) - nbr)
END AS Word, nbr
FROM Nums
WHERE nbr <= LEN(@S)
AND SUBSTRING(@D + @S, nbr, 1) =@D);
GO