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

एकल तालिका से खोजशब्दों के आधार पर संबंधित लेख चुनें

Alter FUNCTION [dbo].[uf_SplitKeywords] 
   (  @DELIMITER VARCHAR(5), 
      @LIST      VARCHAR(MAX) 
   ) 
   RETURNS @TABLEOFVALUES TABLE 
      (  ROWID   int IDENTITY(1,1), 
         [VALUE] VARCHAR(MAX) 
      ) 
AS 
   BEGIN
   Declare @Pos int
   While LEN(@List) > 0
      begin
        Select @Pos=CHARINDEX(@Delimiter,@List,1)      
        if @Pos>0
           begin
             Insert into @TABLEOFVALUES ([Value]) Values (SubString(@List,1,@Pos -1))
             Select @LIST = STUFF(@List,1,@Pos ,'')
           end
        else  
            begin
            Insert into @TABLEOFVALUES ([Value]) Values (@List)
            Select @LIST =''
            end  
      end
   Return 
   End

द्वारा कॉल के साथ

Select Distinct b.ArticleID,b.Title,b.Description,b.Details,b.KeyWords from
(
Select * from Article a1 
CROSS APPLY [dbo].[uf_SplitKeywords](',',keywords) f1
Where a1.ArticleID=3
) a
Join
(
Select * from Article a2 
CROSS APPLY [dbo].[uf_SplitKeywords](',',keywords) f2
) b
on a.Value=b.Value


  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 सर्वर अंतिम N पंक्तियों का चयन करें

  2. sql स्टेटमेंट को निष्पादित करने के लिए कनेक्शन का उपयोग करने से पहले लेनदेन का निपटान किया जाना चाहिए

  3. Node.js और Microsoft SQL सर्वर

  4. SQL सर्वर में sys.sql_modules, sys.system_sql_modules और sys.all_sql_modules के बीच अंतर

  5. SQL सर्वर में विशिष्ट वर्ण के बाद एक स्ट्रिंग को कैसे विभाजित करें और इस मान को विशिष्ट कॉलम में अपडेट करें