Je veux remplacer certaines valeurs avec des valeurs correspondantes dans SQL. Je ne peux pas créer une table de référence croisée. Les valeurs peuvent être spécifiées dans le fichier 'txt' ou "propriétés" dans mon application
i examinée par code> déclaration code> mais j'ai 200 remplacements pour faire pour lequel dans ma réponse si je reçois à remplacer par p> < Pré> xxx pré> p> case code> est pas suffisant p>
lot_number code> Je veux le remplacer par
numéro de lot code> ou si je reçois
lot_number_xref code> Je veux le remplacer par
Numéro de lot croisé-référence code> p>
3 Réponses :
Si vous avez de nombreuses valeurs différentes à remplacer, vous devez créer une table pour stocker la cartographie des anciennes valeurs vers de nouvelles valeurs. Ensuite, vous pouvez rejoindre cette table dans votre requête.
Le SQL ci-dessous remplace l'ancienne valeur avec la nouvelle valeur (ou la laisse comme si aucune traduction n'a été définie): p> pour un nombre limité de valeurs à traduire Vous pouvez étudier. Ou peut-être un CTE avec Union: P> WITH mapping_table AS (
SELECT 'LOT_NUMBER' AS old_value, 'Lot Number' AS new_value
SELECT 'LOT_NUMBER_XREF', 'Lot Number Cross-Reference'
)
SELECT
COALESCE(m.new_value, t.value)
FROM
table t
LEFT JOIN mapping_table m
ON t.value = m.old_value
Si vous ne pouvez pas utiliser la table de référence croisée, utilisez-le (vous devrez le générer dans votre application) Sous-requête ou CTE à la place! CTE:
select t.value, coalesce(m.new_value, 'none') as new_value from tbl_your_table t left join ( select 'LOT_NUMBER' as old_value, 'Lot Number' as new_value union all select 'LOT_NUMBER_XREF', 'Lot Number Cross-Reference' ) m on t.value = m.old_value
Si vous avez quelque chose de générique comme puis, utilisez < code> cas lorsque code> en haut de ceci avec Le truc est simplement de vérifier les termes généralisés et de leurs remplacements Store IT _ code> charecteur, ce que vous pouvez faire est d'utiliser
comme code> Opérateur et
manneule code>
in (x, ref) puis remplacer (mannequin, 'x', croix) code> de même pour les autres comme Eh bien, cela réduira le nombre de cas. P>
dans la clause code> Préfiltrer les plus généraux. Si le compte est toujours important, vous avez besoin d'une table temporaire pour référence de recherche comme une matrice dans d'autres langages de programmation p> p>
Donnez-nous des données de table d'échantillons et le résultat attendu - tout comme texte formaté, pas des images. Simplifier! Stackoverflow.com/help/mcve
Créez une table de référence croisée avec des colonnes pour les valeurs anciennes et nouvelles, puis rejoignez-la.
@Ricbrandt - Je ne peux pas créer de table de référence croisée. Les valeurs peuvent être spécifiées dans le fichier 'txt' ou «propriétés» dans mon application. Je viens d'ajouter des informations sur les questions.
@ RAJ247: Créez ensuite une table et remplissez-la avec les valeurs des fichiers.
Pourquoi devrais-je fournir un mcve pour ce qui me semble être une requête SQL très simple?