Exécuter la fonction définie par l'utilisateur SQL qui retourne booléen, dans la clause where
Espère que ce ne pas sembler trop simple. J'ai regardé cela, mais je ne suis pas si bon en SQL, fonctions définies par l'utilisateur et de leur utilisation, de sorte que je ne suis pas sûr de ce qu'il se passe. Qui aime un peu de points pour me dire pourquoi j'obtiens le message d'erreur:
Une expression de la non-booléenne de type spécifié dans un contexte où une
la condition est prévu, près de ')'.
Pour cela:
UPDATE LMI_Contact
SET Phone = NULL
WHERE dbo.LMI_IsSingleCharacterRepeated(Phone, '0')
où la fonction peut être créé à l'aide de:
-- ***this will also find NULL and empty string values***
CREATE FUNCTION LMI_IsSingleCharacterRepeated (@string varchar(max), @char char(1))
RETURNS bit
AS
BEGIN
DECLARE @index int
DECLARE @len int
DECLARE @currentChar char(1)
SET @index = 1
SET @len= LEN(@string)
WHILE @index <= @len
BEGIN
SET @currentChar = SUBSTRING(@string, @index, 1)
IF @currentChar = @char
SET @index= @index+ 1
ELSE
RETURN 0
END
RETURN 1
END;
GO
Cette fonction est pour vérifier si une chaîne est un caractère unique, répétée. J'espère que quelqu'un le trouve utile!
source d'informationauteur Chris Halcrow
Vous devez vous connecter pour publier un commentaire.
Vous devez utiliser des opérateurs de comparaison à l'encontre de fonctions, même si le type de retour est
bit
.Essayer Cette
Vous avez besoin de modifier la clause where d'une requête query as: