2017-10-19 16 views
0

J'essaie de lire certaines entrées d'une base de données microsoft sql. Le problème est que l'une des colonnes a un nom avec des caractères spéciaux "bedürfnisse" et les entrées sont toutes en Latin1_General_CI_AS. Je dois sélectionner cette colonne.Requête SQL avec char spécial allemand et Latin1_General_CI_AS

Select nameName.bedürfnisse 
FROM nameName 

Cela ne fonctionne pas. J'ai également essayé

Select nameName.bedürfnisse COLLATE Latin1_General_CI_AS 
FROM nameName 

mais cela ne fonctionne pas non plus. Comment puis-je sélectionner cette colonne?

+0

Plutôt 'nameName." Bedürfnisse "', car aucun dbms n'est étiqueté SQL ANSI est supposé. (Travaillera également avec SQL Server.) Mais, en guise de conseil général, évitez les caractères non-ascii dans les identifiants. – jarlh

+0

@jarlh vous avez raison. Je suis trop rapide pour supposer TSQL: p – Magisch

Répondre

0

Ce qui a vraiment aidé était de définir UTF-8 dans la connexion. C'est l'un des paramètres de l'option

0

Vous devez échapper vos noms de colonne s'ils contiennent des caractères spéciaux. Cela inclut également des espaces et d'autres caractères ascii non standard dans les noms de colonne.

Pour la norme ANSI SQL la syntaxe pour ce faire est la suivante:

SELECT nameName."bedürfnisse" 
FROM nameName 

Pour SQL Server cela fonctionne aussi:

SELECT nameName.[bedürfnisse] 
FROM nameName 

Pour MySQL, cela fonctionne aussi:

SELECT nameName.`bedürfnisse` 
FROM nameName