Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

एमएस एसक्यूएल का उपयोग करके सभी फील्ड रिकॉर्ड्स में प्रयुक्त शब्दों की एक अलग सूची कैसे प्राप्त करें?

मुझे नहीं लगता कि आप इसे एक चयन के साथ कर सकते हैं। सबसे अच्छा मौका एक उपयोगकर्ता परिभाषित फ़ंक्शन लिखना है जो सभी शब्दों के साथ एक तालिका देता है और फिर उस पर SELECT DISTINCT करता है।

अस्वीकरण: फ़ंक्शन dbo.Split http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=50648

से है
CREATE TABLE test
(
    id int identity(1, 1) not null,
    description varchar(50) not null
)

INSERT INTO test VALUES('The dog jumped over the fence')
INSERT INTO test VALUES('The giant tripped on the fence')

CREATE FUNCTION dbo.Split
(
    @RowData nvarchar(2000),
    @SplitOn nvarchar(5)
)  
RETURNS @RtnValue table 
(
    Id int identity(1,1),
    Data nvarchar(100)
) 
AS  
BEGIN 
    Declare @Cnt int
    Set @Cnt = 1

    While (Charindex(@SplitOn,@RowData)>0)
    Begin
        Insert Into @RtnValue (data)
        Select 
            Data = ltrim(rtrim(Substring(@RowData,1,Charindex(@SplitOn,@RowData)-1)))

        Set @RowData = Substring(@RowData,Charindex(@SplitOn,@RowData)+1,len(@RowData))
        Set @Cnt = @Cnt + 1
    End

    Insert Into @RtnValue (data)
    Select Data = ltrim(rtrim(@RowData))

    Return
END

CREATE FUNCTION dbo.SplitAll(@SplitOn nvarchar(5))
RETURNS @RtnValue table
(
    Id int identity(1,1),
    Data nvarchar(100)
)
AS
BEGIN
DECLARE My_Cursor CURSOR FOR SELECT Description FROM dbo.test
DECLARE @description varchar(50)

OPEN My_Cursor
FETCH NEXT FROM My_Cursor INTO @description
WHILE @@FETCH_STATUS = 0
BEGIN
    INSERT INTO @RtnValue
    SELECT Data FROM dbo.Split(@description, @SplitOn)
   FETCH NEXT FROM My_Cursor INTO @description
END
CLOSE My_Cursor
DEALLOCATE My_Cursor

RETURN

END

SELECT DISTINCT Data FROM dbo.SplitAll(N' ')


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर में एक दृश्य से SCHEMABINDING निकालें

  2. सी # में संग्रहित प्रक्रिया से वापसी मूल्य प्राप्त करना

  3. SQL सर्वर आंतरिक:समस्याग्रस्त ऑपरेटर्स पं। द्वितीय - हाशिंग

  4. टी-एसक्यूएल का उपयोग करते हुए फजी मिलान

  5. प्रत्येक आईडी के लिए अधिकतम मूल्य प्राप्त करने के लिए सरल क्वेरी