Nejčastěji odpovídající uživatel
Pivot

Dotaz
-
Dobrý den. Jsem už trochu zoufalý. Používám funkci PIVOT pro otočení řádků do sloupců. Tato funkce má jednu špatnou vlastnost a to tu, že musím otáčený sloupec agregovat. Toto je pro mou potřebu nevýhodné, by dokonce špatné. Potřebuji ty hodnoty víckrát. Bude x řádků, kde je vše stejné až na ten jeden sloupec(v současné době agregovaný). Jak mám tento problém vyřešit.
Moc děkuji.
Petr Jůna
Odpovědi
-
SQL2008 již obsahuje implementaci XQuery funkcí lower-case a upper-case, takže můžete standardně přes UPDATE-modify-replace.
V SQL2005 je to docela peklo, lower-case a upper-case tam v XQuery nejsou podporovány, takže by asi nezbylo než si vyselectovat tu hodnotu atributu do nějaké temporary tabulky s příslušným klíčem, v tabulce udelat standardní UPDATE-SET-LOWER() a pak udělat XQuery-UPDATE zpět do XML.
- Navržen jako odpověď Michal Neuwirth čtvrtek 5. února 2009 13:50
- Označen jako odpověď Robert HakenMVP, Moderator středa 18. února 2009 21:16
Všechny reakce
-
-
Již jsem to vyřešil. Tedy obešel, moc děkuji. Přesto bych se zeptal dál. Jde o XML práci v SQL.
Mám položku ve sloupci XML viz níže a potřebuji všechny <UserItem Value="1.m je 1220" /> přesněji hodnotu Value převést na malá písmena. Prosím o radu, děkuji. Petr Jůna
<
Item ID="1162" Name="dip ro§nov pod radhoçtŘm" DefName="lokalita" ContainerName="dip býeznice"><
Attributes><
Atts><
Att AttValID="4630" AttDefID="25" Name="źˇslo" DefName="lokalita" ContainerName="dip býeznice"><
UserItem Value="81022" /></
Att><
Att AttValID="4628" AttDefID="26" Name="mŘsto" DefName="lokalita" ContainerName="dip býeznice"><
UserItem Value="Ro§nov pod RadhoçtŘm" /></
Att><
Att AttValID="4627" AttDefID="27" Name="ulice" DefName="lokalita" ContainerName="dip býeznice"><
UserItem Value="1.m je 1220" /></
Att><
Att AttValID="4629" AttDefID="28" Name="typ" DefName="lokalita" ContainerName="dip býeznice"><
UserItem Value="DiP" /></
Att><
Att AttValID="6286" AttDefID="29" Name="nadýˇzen lokalita" DefName="lokalita" ContainerName="dip býeznice"><
Item ID="607" Name="Łp vsetˇn" DefName="lokalita" ContainerName="dip býeznice"><
Attributes><
Atts><
Att AttValID="2412" AttDefID="27" Name="Ulice"><
UserItem Value="Pod ¦amboçkou 1024" /></
Att><
Att AttValID="2413" AttDefID="26" Name="MŘsto"><
UserItem Value="Vsetˇn" /></
Att><
Att AttValID="2414" AttDefID="28" Name="Typ"><
UserItem Value="éP" /></
Att><
Att AttValID="2415" AttDefID="25" Name="¬ˇslo"><
UserItem Value="81020" /></
Att><
Att AttValID="5390" AttDefID="30" Name="PS¬"><
UserItem Value="755 01" /></
Att></
Atts></
Attributes></
Item></
Att><
Att AttValID="5538" AttDefID="30" Name="psź" DefName="lokalita" ContainerName="dip býeznice"><
UserItem Value="756 61" /></
Att></
Atts></
Attributes></
Item> -
SQL2008 již obsahuje implementaci XQuery funkcí lower-case a upper-case, takže můžete standardně přes UPDATE-modify-replace.
V SQL2005 je to docela peklo, lower-case a upper-case tam v XQuery nejsou podporovány, takže by asi nezbylo než si vyselectovat tu hodnotu atributu do nějaké temporary tabulky s příslušným klíčem, v tabulce udelat standardní UPDATE-SET-LOWER() a pak udělat XQuery-UPDATE zpět do XML.
- Navržen jako odpověď Michal Neuwirth čtvrtek 5. února 2009 13:50
- Označen jako odpověď Robert HakenMVP, Moderator středa 18. února 2009 21:16
-