0
votes

Utiliser «comme» dans une déclaration de cas

Je tente de générer un nouveau champ basé sur un champ existant dans lequel certaines des entrées contiennent des caractères spéciaux différents. (c.-à-d. *, ') Les caractères spéciaux sont à la fin de la chaîne, ce qui est deuxième ou troisième position.

Je suis nouveau sur SQL mais pas nouveau aux données. J'utilise un cas lorsque la déclaration. J'ai essayé plusieurs approches et plusieurs autres commandes dans la déclaration de cas.

Ce que je veux, c'est: xxx

Je continue à obtenir la même erreur: "du mot clé introuvable si attendu". Je m'attends à avoir tous les 3 retours dans le nouveau champ.


1 commentaires

BTW, c'est un cas expression (puisqu'il renvoie une valeur.)


3 Réponses :


0
votes

Si vous recherchez "caractère", vous devez vous échapper.

Changer P>

WHEN grde_code_mid LIKE '['']' THEN 'Continuing'


0 commentaires

0
votes

Il y a plusieurs problèmes avec votre requête:

  • vous manquez une virgule dans la clause SELECT entre * et l'expression (ceci causer l'erreur que vous obtenez actuellement )
  • Les notations de support sont uniquement prises en charge dans SQL-Server; Si vous voulez correspondre à des chaînes qui se terminent par * de manière portable, vous avez besoin d'une expression ... comme '% *' , pas similaire '[* ] '
  • Citations simples incorporées dans une chaîne doivent être échappées
  • Sélectionnez *, autre_field de ... n'est pas pris en charge sur tous les RDBMS (et, comme commenté Jarhl , n'est en fait pas la notation standard ANSI SQL); Vous devez généralement préfixer le * avec le nom de la table ou l'alias

    considérer: xxx


1 commentaires

Juste une note, SELECT *, une autre colonne de ... n'est pas valide ANSI SQL Syntaxe.



0
votes

Merci à tous. Je reçois toujours la suspension de la langue et des termes appropriés. J'utilise Oracle DB. En outre, oui, j'ai besoin de référencer la table dans l'instruction SELECT (SELECT Nom . *). Trouvé un travail autour de:

cas lorsque Regexp_like (GRDE_CODE_MID, '[*]') Puis 'Remedial' Lorsque Regexp_Like (GRDE_CODE_MID, '[' ']') Alors "continu" Sinon la fin null comme spécial_class


0 commentaires