Új hozzászólás Aktív témák
-
Flashback
addikt
Tizedes jegyek számának beállításához van valami függvény vagy parancs?
Bocs nincs hosszú ö, ü és néha az á is ä :)
-
Flashback
addikt
'Trunc' is not a recognized built-in function name.
Ilyenkor mi a helyzet?
Microsoft SQL Server Management Studio 10.50.4000.0
Microsoft Data Access Components (MDAC) 6.1.7601.17514
Microsoft MSXML 3.0 6.0
Microsoft Internet Explorer 9.0.8112.16421
Microsoft .NET Framework 2.0.50727.5466
Operating System 6.1.7601Bocs nincs hosszú ö, ü és néha az á is ä :)
-
bpx
őstag
válasz Flashback #1706 üzenetére
ilyenkor az a helyzet, hogy ez adatbaziskezelonkent valtozik es nem tudhatjuk mire gondoltal, ezert irtam egy olyat, ami hozzam a legkozelebb all
de egyebkent MS SQL-ben is van [link]
ha regebbi verzio, akkor a ROUND-ot is lehet hasznalni [link]
a harmadik parametere ha nem 0, akkor nem kerekit, hanem siman csak levagja -
Kommy
veterán
Tudnátok segíteni, hogy mit kéne a lekérdezésbe írni ha azt szeretném megvalósítani, hogy van egy szövegmezőm amibe lehet írni (milyen meglepő), és mondjuk 3+ karakter után kilistázná azokat a sorokat amiben a nevek így kezdődnek.közbe leesett, hogy nekem a like kell
[ Szerkesztve ]
-
Jim-Y
veterán
Sziasztok, van mondjuk 150 sorom, első oszlop egy timestamp, órás bontásban, szeretnék egy olyan lekérdezést csinálni, amiben 12 óránként groupby-olom a sorokat.
Jelenleg:
GROUP BY DATE(S_DATE); ez 7 sort jelent, a táblában egy heti adat van.
vagy
GROUP BY S_DATE; így pedig ugye órás bontásban az egy hetes adat, tehát 168 sor lesz.Na én a fentebb említett dolgot szeretném, hogy 12 órás bontásban groupby-olhassak
Üdv
-
-
nyunyu
félisten
Egy adattarhazas cuccban lattam ilyen furcsa queryket:
update tabla1
set valtozo=tabla2.valtozo2
where tabla1.id=tabla2.id;update tabla1, tabla2, tabla3
set valtozo=tabla3.valtozo
where tabla1.id=tabla2.id and tabla2.valami=tabla3.valami;Ez mennyire bevett szintaxis?
SQL 2008R2-nek termeszetesen egyik implicit join sem tetszik.Hello IT! Have you tried turning it off and on again?
-
-
Apollo17hu
őstag
Munkahelyemen mi is így írjuk a kötéseket. Ha jól tudom, azért van így, mert annak, aki nulláról kezdi az SQL-t, egyszerűbb a (+) operátor használatát megérteni (=könnyebben beletanul), mint a többféle JOIN-t, és könnyebb is olvasni a többszáz-/többezersoros kódokat. Nekem ráállt erre az agyam, és nagyságrenddel rövidebb idő alatt értelmezek egy ilyen kódot, mint ami JOIN-okkal van tele.
-
nyunyu
félisten
Egyetemen azt tanitottak, hogy ma mar ekvivalens ez a ket query:
select *
from tabla t1
join tabla2 t2 on t1.id=t2.id
where t2.nev='valami';select *
from tabla1 t1, tabla2 t2
where t2.nev='valami' and t1.id=t2.id;Mind az Oracle, mind az MS SQL automatikusan atalakitja az elso szintaxist a masodik formara, es ugy optimalizalja.
Regen maskepp fordult le a ketto, jobban tudtak optimalizalni, ha vesszovel soroltad fel a tablakat.Na, de updatetelendo tablahoz joinolni??? Az nekem uj.
[ Szerkesztve ]
Hello IT! Have you tried turning it off and on again?
-
Apollo17hu
őstag
Ilyet én is szoktam csinálni. Az a feladat, hogy megadott feltételek szerint válogassam ki a szükséges néhánytízezer rekordot egy segédtáblába, amivel később a hónap folyamán dolgozunk. A rekordokat könnyű kiválasztani, de kb. 100 attribútum tartozik hozzájuk, azokat pedig 20-25 adattáblából kell összeszedni. Ha ezeket mind egyetlen lekérdezésbe írnám, az életben nem futna le. (Optimalizáláshoz nem értek, az IT-segítség pedig sok lóvéba kerül. ) Ezért a leválogatott rekordokhoz később, UPDATE-ekkel keresem ki az attribútumokat - akár egyesével az eddig fel nem használt adattáblákból.
-
Ispy
veterán
Pedig teljesen standard dolog, én is sokat használom tárolt eljárásokban, például összetett lekérdezéseknek inkább csinálok egy temp táblát és ott rakom össze az adatokat.
Igaz nem a wheres megoldással, nekem arra nem áll rá az agyam, de gondolom megszokás kérdése.
"Debugging is like being the detective in a crime movie where you're also the murderer."
-
a kérdés konkrétan postgresql és jáva, de szerintem általánosítható.
text mezőben akarok sql kereséseket tárolni. hogy kell escape-lni, van-e rá valami szabvány eljárás vagy kész függvény?Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
-
válasz Peter Kiss #1723 üzenetére
nekem is ez volt a kezdő ötlet, de itt szokott lenni jobb is...
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
válasz Jester01 #1725 üzenetére
nem használhatok paraméteres sql-t, mert semmilyen előzetes infóm nincs arról, hogy milyen selectet akarnak később... azt akarom megoldani, hogy egyszer megfaragom a programot jávában, utána pedig bármilyen hasfájásuk van, csak betolok egy rekordot egy táblába és le tudják tölteni a keresés eredményét.
ezt, hogy előre semmit nem tudok a lekérdezésről, nemigen lehet paraméterezni...
a bármi más escapelését eddig kerülőúton oldottam meg...
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
-
válasz Jester01 #1729 üzenetére
adminisztrációs rendszer. jávában, webes felülettel. időnként beesik a főnök agyába, hogy erről meg arról listát akar. én meg nem akarok folyton gép előtt dekkolni, hogy megcsináljam neki a listát.
ezért azt találtam ki, hogy írok egy programrészt, ami egy tetszőleges select eredményét xls-be konvertálva letölthetővé teszi a webes felületről. egy tábla, abban egy rekord egy lekérdezés, egyik mező név, másik mező egy text, amiben a select van. ha a főnöknek kiújul a könyökfájása, akkor összematekolom az sql kifejezést és beletöltöm az adatbázis táblájába távolról.na innen indul a kérdés, hogy milyen formátumban töltsem bele. utána ő a webes felületén kiválasztja egy dropdown menüből, hogy melyik listát akarja, klikkel és letöltődik a lista.
egy átlagos selectben nyilván lesz aposztróf, stb. amit csak úgy nem lehet inzertálni a táblába, meg szelektálni belőle. ehhez kellene a net nagy iq-ja, hogy hogyan kódoljam a selectet, amit utána jávában egyszerűen vissza lehet konvertálni sql stringgé, amit utána le tudod futtatni.
de nekem nem kell webes felület, hogy beletöltsem az adatbázisba, egyrészt mer minek, másrészt nem baj az, ha ők nem tudnak mindenféle bravúros dolgot könnyen beletölteni, amivel utána kigyalulnak mindent.
a base64, mint eddig elhangzott ötlet, egészen jónak tűnik, csak megvárom, tud-e valaki jobbat (ezt a mondatot erősen értsd magadra )
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
válasz Jester01 #1731 üzenetére
egy insert into tabla (sql_command) values ('select * from customer where name like 'kovács%';'); utasítás szerintem nem fog lefutni.
az még nekem is egyértelmű, hogy itt a belső aposztrófokat escapelni kell. és még mit?
de mivel az itteni hozzászólások alapján többen is jobban konyítanak ehhez, mint én, hasznosnak láttam feltenni a kérdést.Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
select * from customer where name like "kovcs%";
ERROR: column "kovcs%" does not exist
LINE 1: select * from customer where name like "kovcs%";szerk: közben rájöttem, dupla aposztrófra gondolhattál, nem idézőjelre.
[ Szerkesztve ]
Egy átlagos héten négy hétfő és egy péntek van (C) Diabolis
-
Ispy
veterán
válasz bambano #1735 üzenetére
közben rájöttem, dupla aposztrófra gondolhattál, nem idézőjelre.
Igen, mert akkor az SQL motor nem karakterlánc kezdete / vége jelként kezeli, hanem sima aposztrófként a stringen belül.
"Debugging is like being the detective in a crime movie where you're also the murderer."
-
Jim-Y
veterán
Üdv,
egy mysql procedure-ben szeretném azt megvalósítani, hogy ha egy tábla még nincs az adatbázisban, akkor a CREATE TABLE rész fusson le, ha már van tábla, akkor pedig egy másik, jelen esteben INSERT.Próbáltam magamtól, és kerestem neten is, de mindeddig nem jártam sikerrel, mert..
mert vagy olyat találtam, hogy CREATE TABLE IF NOT EXISTS ..stb, de ez nem jó, mert nekem egy IF szerkezet kéne, de IF-et meg nem lehet csak úgy írni, tehát ez pl nem jó..
IF(EXISTS (T1), INSERT INTO... , CREATE TABLE ... )Hogy szoktátok ezt csinálni? üdv
-
-
Jim-Y
veterán
válasz Peter Kiss #1739 üzenetére
Oké..és ezt hogy fűzöm bele egy elágazásba?
-
-
Jim-Y
veterán
Sziasztok ismét..sajnos ez nem akar összejönni:S
SELECT 1
FROM information_schema.tables
WHERE table_schema = 'valami'
AND table_name = 'MY_TABLE' INTO @table_exists;IF(@table_exists = '1',(SELECT * FROM MY_TABLE;) , (CREATE TABLE MY_TABLE;) );
Erre ez a hibaüzenet jön:
There are more than one commands on this line. Note that only the first complete command is executed.Értem a hibaüzit, értem azt is, hogy nem így kéne, de nincs ötletem, hogy hogy lehetne megoldani, itt nincsenek függvények, nem tudok az IF-en belül függvényt hívni, nem tudom hogy kéne a @table_exists változótól függően, ezt, vagy azt a query-t lefuttatni
[ Szerkesztve ]
-
Ispy
veterán
Sajnos én nem értek mysql-hez, csak mssql-hez, ott így van:
SELECT @table_exists=1
FROM information_schema.tables
WHERE table_schema = 'valami'
AND table_name = 'MY_TABLE'
IF @table_exists = 1
BEGIN
SELECT * FROM MY_TABLE
END
ELSE
BEGIN
CREATE TABLE MY_TABLE
ENDHa nem megy, akkor menjél át a prog.hu-ra, ott biztosan segítenek.
[ Szerkesztve ]
"Debugging is like being the detective in a crime movie where you're also the murderer."
-
-
-
plaschil
aktív tag
Üdv!
Oracle XE-ben létrehoztam egy táblát, ehhez írtam grafikus felületet, amivel törlök, módosítok, felviszek, keresek adatokat...
A törlés valamiért nem megy helyesen, ugyanis mindig sikeresként könyveli el a törlést, akkor is ha olyan elemre hivatkozom törléskor, ami nem is létezik. Ha sql parancsokkal próbálom az sql command felületen törölni azt ami nem létezik, ezt kapom vissza:
0 row(s) deleted.
Itt nem valami hibának kellene történnie? (Kb. olyannak, mint amikor olyat akarok felvinni az adatbázisba, ami már létezik...) Mert hiába várom én a kivételt, ha sosem dobódik meg...
Vagy valamit rosszul csinálnék?btnTorles.addSelectionListener(new SelectionAdapter() {
@Override
public void widgetSelected(SelectionEvent e) {
torolni = textTorles.getText();
SQLP = "{CALL tanulok_DELETE(?)}";
try {
cs = conn.prepareCall(SQLP);
cs.setString(1, torolni);
cs.executeQuery();
JOptionPane.showMessageDialog(null, "Sikeres törlés!\nTörölve: " + torolni, "Üzenet", 1);
} catch (Exception torleshiba) {
JOptionPane.showMessageDialog(null, "Sikertelen törlés! \n" + torleshiba.getMessage(), "Üzenet", 0);
}
}
} );Creative G500 vezérlő panelt keresek// Hol vagy helyileg? - A kisszobába. // Szilvásbuktát, mert azt szeretem!