Jag har en färdiggjord databas som har en tabell som håller reda på procent. Kolumnen med procenten är varchar och procenten står i formen 85%. Jag skulle nu behöva räkna på detta värde och stöter på problem eftersom servern inte verkar vilja accepter SUBSTR för att först ta bort % för att köra CAST sen. Tror inte SUBSTR finns med i SQL-standarden, och du får då helt enkelt hoppas på att det finns någon variant. Du kan prova med SUBSTRING också. I värsta fall är du rökt och får antingen försöka få en databasändring till stånd, eller sköta det programmatiskt. (Och det förstnämnda är ju naturligtvis det bästa, eftersom det befintliga är totalt vansinnigt.) Vilken databashanterare? Det finns en substring-function i standarden Det är en färdiggjort och jag fick inte ändra på den. Löste dock problemet på ett annat sätt. Jag använda replace för att ta bort % och ersätta de med ingenting, och efter de så körde jag kast till double. Tror de ska funka bra nu. Tack för all hjälp! Hej. Jag kunde för de första inte använda double, och min editor klagar på att jag inte får ändra en varchat till float. Har ni något tips?SQL och procent
Någon som har något förslag på någon lösning?Sv: SQL och procent
Sv: SQL och procent
<code>
select cast(substring(columnName from 1 for char_length(columnName)-1) as int)
</code>
eller så kan du använda trim
<code>
select cast(trim(trailing '%' from columnName) as int)
</code>Sv:SQL och procent
Sv: SQL och procent
Koden som jag har nu (för test) ser ut såhär:
CASE dbo.KindsOfWood_T.Name WHEN 'F' THEN CAST(REPLACE(dbo.KindsOfMoistureValues_T.Name, '%',
'') AS FLOAT) / 100 ELSE 'test' END AS Grej
*ÄNDRING: Jag löste det med CONVERT istället för CAST.