Ausführen von SQL-Benutzer-definierte Funktion, die zurückgibt, boolean, in die where-Klausel
Hoffe, dass dies nicht zu einfach scheinen. Ich habe mir das aber ich bin nicht so gut in SQL benutzerdefinierte Funktionen und Ihre Verwendung, also bin ich nicht sicher, was Los ist. Wer Lust hat ein paar Punkte für mich zu sagen, warum bin ich immer die Fehlermeldung:
Ausdruck nicht-booleschen Typs in einem Kontext, in dem ein
Bedingung erwartet wird, in der Nähe von ')'.
:
UPDATE LMI_Contact
SET Phone = NULL
WHERE dbo.LMI_IsSingleCharacterRepeated(Phone, '0')
wo die Funktion kann erstellt werden mit:
-- ***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
Diese Funktion ist für die überprüfung, ob eine Zeichenfolge eine angegebene einzelnes Zeichen wiederholt werden muss. Hoffe jemand findet es nützlich!
Vorsicht - mein-Funktion finden sich auch Felder mit null-Werten oder eine leere Zeichenfolge, so wirklich braucht, ein wenig mehr Arbeit
InformationsquelleAutor Johnny | 2013-05-31
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie verwenden Vergleichsoperatoren gegen Funktionen, auch wenn der Rückgabetyp ist
bit
.InformationsquelleAutor Thomas
Versuchen, Diese
Wieder aktualisiert.. bitte überprüfen.
Gute Idee und nochmals vielen Dank. Die Verwendung von reservierten Wörtern in einer Abfrage leicht fangen können, einem Entwickler aus. In meinem Fall war dies nicht das problem. Ich habe von Ihnen positiv bewertet werden den Vorschlag als sinnvoll 🙂
InformationsquelleAutor Ravi
Müssen Sie ändern Sie die where-Klausel der Abfrage als:
InformationsquelleAutor nikhil pinto