Mam nadzieję, że nie wydaje się to zbyt proste. Sprawdziłem to, ale nie jestem tak dobry w funkcjach zdefiniowanych przez użytkownika SQL i ich używaniu, więc nie jestem pewien co się dzieje. Kto wyobraża kilka punktów za mówienie mi, dlaczego ja dostaję błąd:Uruchamianie funkcji zdefiniowanej przez użytkownika SQL, która zwraca wartość boolean, gdzie klauzula
An expression of non-boolean type specified in a context where a condition is expected, near ')'.
dla tego:
UPDATE LMI_Contact
SET Phone = NULL
WHERE dbo.LMI_IsSingleCharacterRepeated(Phone, '0')
gdzie funkcja może być stworzony przy pomocy:
-- ***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
Ta funkcja służy do sprawdzania, czy ciąg znaków jest dowolnym określonym pojedynczym znakiem, powtórzony. Mam nadzieję, że ktoś uzna to za przydatne!
ostrożność - moja funkcja będzie również znaleźć pól z wartościami null lub pusty ciąg, tak naprawdę potrzebuje trochę więcej pracy –