Désolé pour le titre vague, mais je ne savais vraiment pas ce titre à donner à ce problème:T-SQL Où déclaration - OU
je l'ensemble de résultat suivant:
ID Field FieldValue Culture
1 Color Groen nl-NL
2 Taste Kip nl-NL
3 Color Green en-GB
4 Taste Chicken en-GB
5 Color Green en
6 Taste Chicken en
Je voudrais comme pour imiter la façon dont ASP.Net de sélection des ressources, la culture de l'utilisateur (nl-NL)
SELECT Field, FieldValue FROM Tbl WHERE Culture = 'nl-NL'
Ou quand il n'y a pas de résultats pour la culture spécifique, essayez la culture mère (nl)
SELECT Field, FieldValue FROM Tbl WHERE Culture = 'nl'
Ou quand il n'y a pas de résultats pour la culture mère, essayez la valeur par défaut Culture (en)
SELECT Field, FieldValue FROM Tbl WHERE Culture = 'en'
Comment puis-je combiner ces SELECT déclarations dans une instruction T-SQL?
J'utilise LINQ donc une expression LINQ serait encore plus grande.
L'instruction OR ne fonctionnera pas, car je ne veux pas un mélange de cultures.
L'instruction ORDER BY- n'aidera pas, car elle renvoie plusieurs enregistrements par culture.
La sortie pourrait ressembler à (nl-NL):
Color Groen
Taste Kip
ou (en-GB/fr):
Color Green
Taste Chicken
Quelle est votre sortie désirée alors? Essayez-vous d'implémenter une solution de remplacement dans laquelle une chaîne n'a pas été traduite dans les paramètres régionaux préférés? (Si oui, vous auriez besoin d'une sorte d'id pour attacher des chaînes équivalentes) –
Que faire si la langue que vous demandez a des valeurs mais pas toutes? Par exemple, si nl-NL inclut une valeur pour le goût, mais n'inclut pas de valeur pour la couleur, avez-vous besoin de retourner le goût nl-NL * et * la valeur de repli nl pour la couleur? Et mangez-vous vraiment du poulet vert aux Pays-Bas? – Ray
@Zyphrax: chaque culture a-t-elle son propre ensemble complet de champs et de paires de valeurs? c'est-à-dire que si la culture ** en ** a une paire de valeurs de champ qui forme une entrée de forme, cercle, le reste de la langue aura sa propre paire valeur de champ de forme, cercle? –