SQLServer - Sélectionnez bool si la colonne commence par une chaîne de caractères
Je souhaite sélectionner une valeur booléenne de l'existence ou non d'une colonne commence par une certaine chaîne de caractères.
SELECT (name LIKE 'foo%') AS isFoo FROM bar;
Est-il un moyen de le faire sans l'aide d'une ligne CASE
?
- Voici une bonne discussion à ce sujet: stackoverflow.com/questions/3095538/...
- Pourquoi avez-vous été à la recherche pour éviter
CASE
d'abord? - J'étais simplement à la recherche d'un moins verbeux de la syntaxe, sans avoir à créer un fichier UDF.
Vous devez vous connecter pour publier un commentaire.
Pas
Il n'y a ni implicite boolean JETÉ dans SQL Server, ni un type booléen
BeginsWith()
ou quelque chose qui est revenu un peu.Vous pourriez même pas besoin de la fonte en fonction de votre utilisation:
Cela renvoie 1 si le col commence avec le texte, sinon 0. Pas de
CASE
impliqués.Un
UNION
opération vous permet de sauter uneCASE
déclaration faite par la combinaison de deux ensembles de résultats. Dans la première requête, filtre pour toutes les lignes qui correspondent à'foo%'
et dans le deuxième vous de faire correspondre toutes les lignes qui ne correspondent pas'foo%'
Quelque chose comme:
(Codée en dur exemple w/o table cible.)
Créer une fonction Définie par l'Utilisateur que vous pouvez appeler afin de vérifier si le nom contient des foo.
De ne pas prendre loin de ce que gbn suggéré, mais je pense que ce serait plus efficace (mais essentiellement la même chose)
CASE
est à éviter.