Ich habe die folgende SQL-Code:Schleife durch Spaltennamen mit CASE-Anweisungen
Declare @TestOne NVARCHAR(80)
Set @TestOne = 'olg.FIRST_NAME'
Select transaction_id,first_name, LAST_NAME, joint_first_name,
joint_last_name, honoree_first_name, honoree_last_name,
CASE WHEN olg.FIRST_NAME LIKE '% and %' THEN '1' ELSE '0' END+
CASE WHEN olg.FIRST_NAME LIKE '% & %' THEN '1' ELSE '0' END+
CASE WHEN olg.FIRST_NAME LIKE '% '' %' THEN '1' ELSE '0' END+
CASE WHEN olg.FIRST_NAME LIKE '% , %' THEN '1' ELSE '0' END+
CASE WHEN olg.FIRST_NAME LIKE '%. %' THEN '1' ELSE '0' END+
CASE WHEN olg.FIRST_NAME LIKE '%Inc%' THEN '1' ELSE '0' END+
CASE WHEN olg.FIRST_NAME LIKE '%foundation%' THEN '1' ELSE '0' END+
CASE WHEN olg.FIRST_NAME LIKE '%Trust%' THEN '1' ELSE '0' END
AS CKLName
from [dbo].OnlineGivingDailyLoad as olg
Was ich will, ist zu tun, um eine Variable zu verwenden, die den Namen der anderen 8 Spalten enthält, die ich für überprüfen möchten eines der Zeichen in der obigen CASE-Anweisung. Was ich nicht will, ist, die obige CASE-Anweisung acht (8) Mal mit dem Namen der anderen Spalten zu wiederholen, die auf diese 'Strings' überprüft werden müssen. Gibt es einen Weg wie in C++, wo Sie einen Zähler haben Die Schleife durchläuft x mal und ändert gleichzeitig ein Array von Strings (die Spaltennamen), um nach den Substrings in der obigen case-Anweisung zu suchen. Die obige Variable führt nicht zu Ergebnissen, wenn sie anstelle des Spaltennamens verwendet wird.