Präfix in der Zelle überprüfen ich SQL lerne, und ich habe eine Tabelle, wo es bestimmte Zellen mit zwei Präfixe wie folgt aus:SQL, wie mit zwei Präfixe
example1(cell) : R:8days; U:5$;
example2(cell) : R:8days;
example3(cell) : U:5$;
ich für diesen U:5$
nach dem ersten überprüfen möchten Präfix, da ich weiß, wie man nach Präfix R:8days;
sucht. Also muss ich nach U:5$
suchen und dann eine neue Spalte in der Tabelle erstellen.
sieht Ihr Code wie folgt:
;with cte as (
select
Employer, AmountPayd, AmountPayd as Payd
from data
where TipeOfTransaction like 'Offline Prepaid%' AND Note like '%R:8%' **HERE I WANT TO CHECK FOR PREFIX NR2. 'U:5$' AND MAKE NEW COLUMN FOR WHICH EMPLOYER HAS U:5$ NOTE.**
)
select
Employer,
[4.00] = ISNULL([4.00],0)
,[5.00] = ISNULL([5.00],0)
,[9.00] = ISNULL([9.00],0)
,[10.00] = ISNULL([10.00],0)
,[15.00] = ISNULL([15.00],0)
,[Sum] =ISNULL([4.00],0) + ISNULL([5.00],0) + ISNULL([9.00],0) + ISNULL([10.00],0) + ISNULL([15.00],0)
from cte
pivot (
sum(AmountPayd) for Payd in ([4.00],[5.00],[9.00], [10.00], [15.00], [20.00]))pvt;
Die Technik, die Sie benötigen genannt wird String-Splitting. Es gibt viele Fragen zu [SO, die Ihnen zeigen können, wie Sie dies tun] (http://stackoverflow.com/search?q=sql+string+splitter). Aber ich würde Ihnen empfehlen, stattdessen Ihr Tischdesign zu ändern. Es ist keine gute Idee, mehrere Werte in einer Zelle zu speichern. Es funktioniert gegen die Designprinzipien, die SQL untermauern. Jede Spalte sollte einem bestimmten Zweck gewidmet sein. –
Ich weiß das, aber ich fragte mich nur, ob ich es so machen kann, danke für deine Antwort. – vidooo
Es gibt ein paar verschiedene Möglichkeiten, dies zu erreichen. Aber mein persönlicher Favorit ist die Verwendung einer [Tally-Tabelle] (http://www.sqlservercentral.com/blogs/dwainsql/2014/03/27/tally-tables-in-t-sql/). Diese Blogs sprechen über den Ansatz: [SQL Server Central] (http://www.sqlservercentral.com/articles/Tally+Table/72993/) und [SQL Performance] (https://sqlperformance.com/2012/07/ t-sql-Abfragen/Split-Strings). –