0
Dies ist mein Code:SQL Einstellung Spaltenname als Funktion von String
-- Create Function
if object_id('dbo.J_TRIM') is not null drop function dbo.J_TRIM
GO
CREATE FUNCTION dbo.J_TRIM(@string VARCHAR(MAX))
RETURNS VARCHAR(MAX)
BEGIN
RETURN LTRIM(RTRIM(@string)) AS [@string]
END
GO
SELECT dbo.J_TRIM(Supplier) FROM Supplier_List
Es funktioniert alles außer wenn ich versuche, mithilfe von AS [@string]
die Spaltennamen als Zeichenfolge zu setzen. Ist dies in SQL möglich und wenn ja, wie behebe ich meinen Code?
Dies ist eine skalarwertige Funktion. Es hat * keinen * Spaltennamen, es hat einen (unbenannten) Rückgabewert. Wenn Sie einen Spaltennamen vergeben wollen, müssen Sie dies im äußeren SELECT tun. –
Übrigens, eine Funktion wie diese wird dir nur Kummer bereiten. Der Optimierer ist schrecklich mit skalarwertigen Funktionen. Sie werden viel bessere Ergebnisse erzielen, indem Sie einfach 'LTRIM (RTRIM (...))' jedes Mal schreiben oder (wenn die Wiederverwendung der Logik sich lohnt, wie es hier nicht der Fall ist) die Funktion als Inline-Tabellenwertfunktion umschreiben. Verlernen Sie das, was Sie aus Programmiersprachen kennen. –