PDA

View Full Version : چگونه از فیلد متنی فقط چند کلمه اول را select کنیم.



sayanpro
جمعه 30 بهمن 1394, 08:00 صبح
سلام دوستان گرامی.
فرض کنید فیلدی به نام description در یک جدول دارید که شامل توضیحاتی در مورد یک محصول است.
حالا ما می خواهیم مثلا فقط 10 کلمه اول این فیلد را select کنیم.

به نظر شما چه دستوری باید استفاده کنیم؟
از دستور left,Substring ,... جواب نمی دهد چون این توابع براساس کاراکتر کار می کنند.

با تشکر از شما.

parsdarab
جمعه 07 اسفند 1394, 07:15 صبح
سلام

ابتدا باید یک تابع تعریف کنی


select dbo.CHARINDEX2('a','abcdabcd',2)

CREATE FUNCTION CHARINDEX2
(
@TargetStr varchar(8000),
@SearchedStr varchar(8000),
@Occurrence int
)
RETURNS int
as
begin
declare @pos int, @counter int, @ret int
set @pos = CHARINDEX(@TargetStr, @SearchedStr)
set @counter = 1
if @Occurrence = 1 set @ret = @pos
else
begin
while (@counter < @Occurrence)
begin
select @ret = CHARINDEX(@TargetStr, @SearchedStr, @pos + 1)
set @counter = @counter + 1
set @pos = @ret
end
end
RETURN(@ret)
end