Sloučení dvou číselných řetězců v mssql   zodpovězená otázka

SQL

Dobrý den. Učím se sql a mam knížku Naučte se SQL za 21 dní.

Tam moc ještě npočítají s Mssql a narazil jsem na problém.

Pro oracle pracují s řetězci napr:

select jmeno || Prijmeni

jenže já potřebuju v mssql spojit jmeno a prijmeni, predvolba a telefon (420-65646454)

select jmeno + prijmeni cele_jmeno, predvolba + '-' + telefon
...

problém je v tom, že telefon se mi nespojí s předvolbou, ale sečte.

Poradíte mi prosím? Google mi neporadil, nevim jak tento problem najit...

Předem děkuji za pomoc.

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

Převod na řetězec před spojováním to vyřeší:

CAST(predvolba as varchar(100)) + '-' + CAST(telefon as varchar(100))
nahlásit spamnahlásit spam 3 / 3 odpovědětodpovědět

Děkuji

A to je standardtní řešení, nebo je to jen "obejití problému"?

Nedá se to spojit nejak elegantněji?

Teprv se začínam učit, tak abych měl jistotu, že to dělám správně :)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Už to mam :)

&

Díky

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tak nemam

&

nefunguje :(

a další rada zní taky konvertovat, takže už mam jasno.

Díky

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Zkuste být konkrétnější v "nemam a nefunguje". Řešení, které sem zaslal je správné. Běžné při kombinaci dvou čísel v rámci řetězce musíte nejdřívě na řetězec přetypovat a následně spojit. Druhou možností je poslat aplikaci čísla a ty spojit až tam.

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

Zdravím, jen se zeptám, jaký je rozdíl v těchto kodech? Od dob SQL 2000 používám druhou variantu


CAST(predvolba as varchar(100)) + '-' + CAST(telefon as varchar(100))

vs.

convert(varchar(100),predvolba) + '-' + convert(varchar(100),telefon)

'pokud je hodnota null
convert(varchar(100),isnull(predvolba,'')) + '-' + convert(varchar(100),telefon)
nahlásit spamnahlásit spam 0 odpovědětodpovědět

Ne potvrzuji vaše řešení. Někde jsem se dočetl, že na spojování se v mssql používá i znak &, ale nakonec to nefungovalo.

Ptal jsem se proto, protože přetypování mi přišlo na tak jednoduchý úkol příliž složité. Ale po tom cojsem hledal dál mi to vyyšlo jako normální řešení této situace.

Takže váš příspěvek můj problém vyřešil.

Děkuji :)

nahlásit spamnahlásit spam 0 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