Advertisement
Guest User

Untitled

a guest
May 12th, 2017
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
SQL 2.43 KB | None | 0 0
  1. CREATE TABLE #TempAbbrev
  2. (
  3. Abbrev VARCHAR(50),
  4. Name VARCHAR(50)
  5. )
  6.  
  7. INSERT INTO #TempAbbrev (Abbrev, Name)
  8. VALUES
  9. ('ma', 'Maria'),
  10. ('ma', 'Ma.'),
  11. ('ma.', 'Ma'),
  12. ('ma.', 'Maria'),
  13. ('ma.', 'ma.'),
  14. ('Maria', 'Ma.'),
  15. ('Maria', 'Ma'),
  16. ('sta', 'Santa'),
  17. ('sta', 'Sta.'),
  18. ('sta.', 'Sta'),
  19. ('sta.', 'Santa')
  20.  
  21. DECLARE @ParamInput nvarchar(255);
  22. SET @ParamInput = 'ma. teresa';
  23.  
  24. DECLARE @normalize VARCHAR(200) = REPLACE(@ParamInput, ' ', '|')
  25. DECLARE @individual VARCHAR(20) = NULL
  26.  
  27. CREATE TABLE #TEMPNORMALIZED
  28. (
  29. Name VARCHAR(250)
  30. )
  31.  
  32. WHILE LEN(@normalize) > 0
  33. BEGIN
  34.     IF PATINDEX('%|%', @normalize) > 0
  35.     BEGIN
  36.         SET @individual = SUBSTRING(@normalize,
  37.                                     0,
  38.                                     PATINDEX('%|%', @normalize))
  39.         SET @normalize = SUBSTRING(@normalize,
  40.                                   LEN(@individual + '|') + 1,
  41.                                   LEN(@normalize))
  42.     END
  43.     ELSE
  44.     BEGIN
  45.         SET @individual = @normalize
  46.         SET @normalize = NULL
  47.     END
  48.     INSERT INTO #TEMPNORMALIZED (Name) VALUES (@individual)
  49. END
  50.  
  51. --SELECT * FROM #TEMPNORMALIZED
  52.  
  53. --SELECT * FROM #TempAbbrev WHERE Name IN (SELECT Name FROM #TEMPNORMALIZED) -- Substitution
  54.  
  55. --declare @abbrev varchar(50) =  (SELECT top 1 Name FROM #TempAbbrev WHERE Name in (SELECT Name FROM #TEMPNORMALIZED))
  56.    
  57.         CREATE TABLE #TB1
  58.         (
  59.         Split VARCHAR(250),
  60.         NAME2 VARCHAR(250)
  61.         )
  62.  
  63. DECLARE @count2 INT;
  64. DECLARE @results VARCHAR(255);
  65. DECLARE db_cursor CURSOR FOR SELECT Name FROM #TEMPNORMALIZED
  66. DECLARE @myName VARCHAR(256);
  67. OPEN db_cursor;
  68. FETCH NEXT FROM db_cursor INTO @myName;
  69. WHILE @@FETCH_STATUS = 0  
  70. BEGIN  
  71.  
  72.        --Do stuff with scalar values
  73.        
  74.         DECLARE db_cursor2 CURSOR FOR SELECT Name FROM #TempAbbrev WHERE Abbrev = @myName;
  75.         DECLARE @myName2 VARCHAR(256);
  76.         OPEN db_cursor2;
  77.         FETCH NEXT FROM db_cursor2 INTO @myName2;
  78.         WHILE @@FETCH_STATUS = 0  
  79.         BEGIN  
  80.                --Do stuff with scalar values               
  81.                INSERT INTO #TB1 (Split, NAME2) VALUES (@myName, @myName2)
  82.    
  83.                FETCH NEXT FROM db_cursor2 INTO @myName2;
  84.         END;
  85.         CLOSE db_cursor2;
  86.         DEALLOCATE db_cursor2;
  87.        
  88.         SET @count2 = (SELECT COUNT(Split) FROM #TB1 WHERE Split = @myName)
  89.        
  90.         SELECT * FROM #TB1
  91.        
  92.  
  93.        FETCH NEXT FROM db_cursor INTO @myName
  94. END;
  95. CLOSE db_cursor;
  96. DEALLOCATE db_cursor;
  97.  
  98. DROP TABLE #TEMPNORMALIZED
  99.  
  100. DROP TABLE #TempAbbrev
  101.  
  102. DROP TABLE #TB1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement