Neexistující sloupec - podmínka   zodpovězená otázka

SQL, Databáze

Ahoj všichni řeším jeden problémek.

Dělám statistiku nad db a potřeboval bych poradit jak v selectu vyřešit možný neexistující sloupec. Protože (je to jen výjmečný případ ,ale může se stát, že se sloupec se bude jmenovat trochu jinak.)

Vemu to jednoduše třeba místo:select jmeno, prijmeni from zakaznici where jmeno = 'Jan'

může nastat situace ,že se sloupec jmeno bude jmenovat jmeno2select jmeno2, prijmeni from zakaznici where jmeno2 = 'Jan'

Vím ale na 100% že sloupec se muze jmenovat budto jmeno nebo jmeno2 nijak jinak.

Dokážete mi poradit jak vyřešit tuto podmínku ?

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Jednoduše to nejde. Musel byste si z informačního schématu databáze zjistit, co je v tabulce za sloupce a podle toho si poskládat dotaz do stringu a pak na něj zavolat eval. Nedoporučuji.

Tady je evidentní, že máte databázi navrženou špatně - obecně se schéma databáze vždy považuje za fixní a názvy sloupců jsou předem známy. Téměř nikdy se nepředpokládá, že by tam sloupec být nemusel.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Bohužel jsem to nenavrhoval já. Nicméně jsem to vyřešil podmínkou v programu. Díky za info :)

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

To není důvod - změnit návrh DB je lepší,než pracovat do alelůja se špatně navrženou a řešit pak každou prkotinu podobnou výjimkou

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Pokud je to jen trochu možné, změňte schéma databáze a upravte ji tak, abyste podobné šarády dělat nemusel.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět

Bohužel s db nepohnu, protože je na ní napojeno v podniku spoustu podnikového SW a ani na to nemám práva .

Bohužel to tak je.. Vím že je to navrženo špatně, ale děkuju za objasnění.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:
Heslo:

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback