Autor Zpráva
matak
Profil
Řeší se to na hodně diskusích, ale nikde jsem nenašel rozumnou odpověď:

INSERT INTO table (id1,id2,id3) VALUES(1,2, (SELECT TOP 1 id FROM test WHERE id=3))

chyba:

Subqueries are not allowed in this context. Only scalar expressions are allowed.

nevíte někdo kudy do toho?
Taps
Profil
matak
popiš konkrétně co potřebuješ. Podle té chyby zkoušíš něco co není povoleno
TomášK
Profil
Nefunguje
INSERT INTO table(id1, id2, id3) SELECT TOP 1 1, 2, id FROM test WHERE id=3
? Nemám po ruce MSSQL, abych to vyzkoušel.
matak
Profil
tohle pravděpodobně fungovat bude,

jde ale o to když je potřeba vkládat dvě různé hodnoty z odlišných selectů

INSERT INTO table (id1,id2,id3) VALUES(1,2, (SELECT TOP 1 id FROM test WHERE id=3), (SELECT TOP 1 id FROM test WHERE id=4))

tohle už nezapíšu stejně jak to navrhuješ

zatím jsem to vyřešil uživatelskou proměnnou, což v některých případech není vhodné, protože jsou to dva dotazy, ale jinak to funguje
Kajman_
Profil *
Ale v insert select už poddotaz projde, ne?

INSERT INTO table(id1, id2, id3, id4) SELECT TOP 1 1, 2, id, (SELECT TOP 1 id FROM test WHERE id=4) FROM test WHERE id=3
matak
Profil
pravda, nevím proč mne to nenapadlo, dík
Toto téma je uzamčeno. Odpověď nelze zaslat.

0