SQLite řadí výsledky v ORDER BY podle velikosti písma tj. písmena „velká“ řadí jako první.
A B C T a b c g
Pro získání:
A a b B C c g T
je možné použít následující SQL:
SELECT name FROM table_name ORDER BY name COLLATE NOCASE ASC;
SQLite řadí výsledky v ORDER BY podle velikosti písma tj. písmena „velká“ řadí jako první.
A B C T a b c g
Pro získání:
A a b B C c g T
je možné použít následující SQL:
SELECT name FROM table_name ORDER BY name COLLATE NOCASE ASC;
Potřebujete omezit řádky podle data, ale pole v databázi je datetime a výsledek vám nevrátí den do. Řešení je převést v SQL pole DateTime na Date.
SELECT COUNT(*) AS score
FROM requests
WHERE CONVERT(date, date_time) BETWEEN '2019-04-01' AND '2019-04-30'
Funkce STRING_AGG umožňuje vypsání hodnot ve sloupci v GROUP BY
STRING_AGG(Colour, ',')
Funkce však vypíše všechny položky tedy i duplicitní. MS SQL DISTINCT v STRING_AGG nepodporuje, na rozdíl od Postgresu.
string_agg(distinct (Colour), ', ')
Omezit položky na jedinečné lze vnořeným dotazem:
select
code,
subcode,
(select string_agg(color, ',') from (select distinct color from mytable t1 where t1.code = t.code and t1.subcode = t.subcode) t) colors,
(select string_agg(fruit, ',') from (select distinct fruit from mytable t1 where t1.code = t.code and t1.subcode = t.subcode) t) fruits,
(select string_agg(car , ',') from (select distinct car from mytable t1 where t1.code = t.code and t1.subcode = t.subcode) t) cars,
(select string_agg(city , ',') from (select distinct city from mytable t1 where t1.code = t.code and t1.subcode = t.subcode) t) cities,
(select string_agg(name , ',') from (select distinct name from mytable t1 where t1.code = t.code and t1.subcode = t.subcode) t) names
from mytable t
group by code, subcode
Více na: https://stackoverflow.com/questions/62055832/string-agg-with-distinct-without-sub-query