Lehet, hogy nem jól keresek, de nem találok megoldást egy egyszerű lekérdezésre, hogy miért nem az történik, amit várok. Nem dob hibát, csak nem hajtja végre!
Tehát egy CASE-WHEN-ELSE kifejezésben miért nem tudok szöveget hozzáfűzni az eredményhez akkor, ha valamilyen műveletet is végzek rajta?
Példa adatok: SQLite Editor (sqlitetutorial.net)
Lekérdezés:
SELECT Name ,
(
CASE
WHEN Milliseconds < 300000 THEN
'Rövid'
ELSE Milliseconds/1000 || ':'
END ) AS 'Seconds'
FROM tracks;
Azt várnám, hogy hozzáfűzi a kettőspontot, de nem történik meg. Ha nem végzek műveletet a kiolvasott értéken, akkor viszont összefűzi. Hogyan tudnám ezt megvalósítani egyszerűen?
- 325 megtekintés
Hozzászólások
Csak tipp: zárójelbe tenni a kifejezést nem segít?
- A hozzászóláshoz be kell jelentkezni
Köszönöm! Ez lett a megoldás.
- A hozzászóláshoz be kell jelentkezni
cast(Milliseconds/1000 as text) || ':'
- A hozzászóláshoz be kell jelentkezni
Ezt megtaláltam én is, de nem segített.
- A hozzászóláshoz be kell jelentkezni
WITH
tracks AS (SELECT
"Zizi" AS Name,
300001 AS Milliseconds
UNION ALL
SELECT
"Bubu" AS Name,
100 AS Milliseconds)
SELECT
Name,
(
CASE
WHEN Milliseconds < 300000 THEN
'Rövid'
ELSE CAST(Milliseconds / 1000 AS TEXT) || ":"
END) AS 'Seconds'
FROM
tracks;
Csaba
- A hozzászóláshoz be kell jelentkezni