Delen via


ODBC Scalaire Functies (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-eindpunt in Microsoft FabricMagazijn in Microsoft FabricSQL-database in Microsoft Fabric

Je kunt ODBC Scalar Functions gebruiken in Transact-SQL statements. Deze statements worden geïnterpreteerd door SQL Server. Ze kunnen worden gebruikt in opgeslagen procedures en door de gebruiker gedefinieerde functies. Deze omvatten string-, numeriek-, tijd-, datum-, interval- en systeemfuncties.

Usage

SELECT {fn <function_name> [ (<argument>,....n) ] }

Functions

De volgende tabellen geven ODBC-scalaire functies weer die niet worden gedupliceerd in Transact-SQL.

Stringfuncties

Functie Description
BIT_LENGTH( string_exp ) (ODBC 3.0) Geeft de lengte in bits van de stringexpressie terug.

Geeft de interne grootte van het gegeven datatype terug, zonder string_exp om te zetten in string.
CONCAT(string_exp1, string_exp2) (ODBC 1.0) Geeft een tekenreeks terug die het resultaat is van het aanvoegen van string_exp2 aan string_exp1. De resulterende string is DBMS-afhankelijk. Als bijvoorbeeld de kolom die door string_exp1 wordt weergegeven een NULL-waarde bevat, zou DB2 NULL teruggeven, maar SQL Server zou de niet-NULL-string teruggeven.
OCTET_LENGTH( string_exp ) (ODBC 3.0) Geeft de lengte in bytes van de stringexpressie terug. Het resultaat is het kleinste geheel getal niet minder dan het aantal bits gedeeld door 8.

Geeft de interne grootte van het gegeven datatype terug, zonder string_exp om te zetten in string.

Numerieke functie

Functie Description
TRUNCATE( numeric_exp, integer_exp) (ODBC 2.0) Retouren numeric_exp afgeknott tot integer_exp posities rechts van het decimale punt. Als integer_exp negatief is, wordt numeric_exp afgekapt tot |integer_exp| posities links van het decimale punt.

Tijd-, datum- en intervalfuncties

Functie Description
CURRENT_DATE( ) (ODBC 3.0) Retourneert de huidige datum.
CURDATE( ) (ODBC 3.0) Retourneert de huidige datum.
CURRENT_TIME[( time-precision )] (ODBC 3.0) Geeft de huidige lokale tijd terug. Het tijdprecisie-argument bepaalt de secondenprecisie van de teruggegeven waarde
CURTIME() (ODBC 3.0) Geeft de huidige lokale tijd terug.
DAYNAME( date_exp ) (ODBC 2.0) Geeft een tekenreeks terug die de gegevensbron-specifieke naam van de dag bevat voor het dagdeel van date_exp. De naam is bijvoorbeeld Sunday tot en met Saturday of Sun. tot en met zaterdag. voor een databron die Engels gebruikt. De naam is Sonntag via Samstag voor een databron die Duits gebruikt.
DAG VAN MAAND( date_exp ) (ODBC 1.0) Geeft de dag van de maand terug, gebaseerd op het maandveld in date_exp, als geheel getal. De rendementwaarde ligt in het bereik van 1-31.
WEEKDAG( date_exp ) (ODBC 1.0) Geeft de dag van de week terug op basis van het weekveld in date_exp als geheel getal. De retourwaarde ligt tussen 1 en 7, waarbij 1 zondag vertegenwoordigt.
UUR( time_exp ) (ODBC 1.0) Geeft het uur, gebaseerd op het uurveld in time_exp, terug als een geheel getal in het bereik van 0-23.
MINUUT( time_exp ) (ODBC 1.0) Geeft de minuut terug, gebaseerd op het minuutveld in time_exp, als een geheel getal in het bereik van 0-59.
TWEEDE( time_exp ) (ODBC 1.0) Geeft de tweede terug, gebaseerd op het tweede veld in time_exp, als een geheel getal in het bereik van 0-59.
MAANDNAAM( date_exp ) (ODBC 2.0) Geeft een tekenreeks terug die de gegevensbron-specifieke naam van de maand bevat voor het maanddeel van date_exp. De naam is bijvoorbeeld januari tot december of januari tot en met december voor een databron die Engels gebruikt. De naam is januari tot en met december voor een databron die Duits gebruikt.
KWART( date_exp ) (ODBC 1.0) Geeft het kwartaal in date_exp terug als een geheel getal in het bereik van 1-4, waarbij 1 staat voor 1 januari tot en met 31 maart.
WEEK( date_exp ) (ODBC 1.0) Geeft de week van het jaar terug, gebaseerd op het weekveld in date_exp, als een geheel getal in het bereik van 1-53.

Voorbeelden

Eén. Het gebruik van een ODBC-functie in een opgeslagen procedure

Het volgende voorbeeld gebruikt een ODBC-functie in een opgeslagen procedure:

CREATE PROCEDURE dbo.ODBCprocedure  
(  
    @string_exp NVARCHAR(4000)  
)  
AS  
SELECT {fn OCTET_LENGTH( @string_exp )};  

B. Gebruik van een ODBC-functie in een door de gebruiker gedefinieerde functie

Het volgende voorbeeld gebruikt een ODBC-functie in een door de gebruiker gedefinieerde functie:

CREATE FUNCTION dbo.ODBCudf  
(  
    @string_exp NVARCHAR(4000)  
)  
RETURNS INT  
AS  
BEGIN  
DECLARE @len INT  
SET @len = (SELECT {fn OCTET_LENGTH( @string_exp )})  
RETURN(@len)  
END ;  
GO
SELECT dbo.ODBCudf('Returns the length.');  
--Returns 38  

Opmerking

Microsoft Fabric ondersteunt ODBC-scalaire functies, maar ondersteunt momenteel geen door de gebruiker gedefinieerde functies die waarden teruggeven, zoals getoond in Voorbeeld B.

C. Gebruik van ODBC-functies in SELECT-instructies

De volgende SELECT-instructies gebruiken ODBC-functies:

DECLARE @string_exp NVARCHAR(4000) = 'Returns the length.';  
SELECT {fn BIT_LENGTH( @string_exp )};  
-- Returns 304  
SELECT {fn OCTET_LENGTH( @string_exp )};  
-- Returns 38  
  
SELECT {fn CONCAT( 'CONCAT ','returns a character string')};  
-- Returns CONCAT returns a character string  
SELECT {fn TRUNCATE( 100.123456, 4)};  
-- Returns 100.123400  
SELECT {fn CURRENT_DATE( )};  
-- Returns 2007-04-20  
SELECT {fn CURRENT_TIME(6)};  
-- Returns 10:27:11.973000  
  
DECLARE @date_exp NVARCHAR(30) = '2007-04-21 01:01:01.1234567';  
SELECT {fn DAYNAME( @date_exp )};  
-- Returns Saturday  
SELECT {fn DAYOFMONTH( @date_exp )};  
-- Returns 21  
SELECT {fn DAYOFWEEK( @date_exp )};  
-- Returns 7  
SELECT {fn HOUR( @date_exp)};  
-- Returns 1   
SELECT {fn MINUTE( @date_exp )};  
-- Returns 1  
SELECT {fn SECOND( @date_exp )};  
-- Returns 1  
SELECT {fn MONTHNAME( @date_exp )};  
-- Returns April  
SELECT {fn QUARTER( @date_exp )};  
-- Returns 2  
SELECT {fn WEEK( @date_exp )};  
-- Returns 16  

Voorbeelden: Azure Synapse Analytics and Analytics Platform System (PDW)

D. Het gebruik van een ODBC-functie in een opgeslagen procedure

Het volgende voorbeeld gebruikt een ODBC-functie in een opgeslagen procedure:

CREATE PROCEDURE dbo.ODBCprocedure  
(  
    @string_exp NVARCHAR(4000)  
)  
AS  
SELECT {fn BIT_LENGTH( @string_exp )};  

E. Gebruik van een ODBC-functie in een door de gebruiker gedefinieerde functie

Het volgende voorbeeld gebruikt een ODBC-functie in een door de gebruiker gedefinieerde functie:

CREATE FUNCTION dbo.ODBCudf  
(  
    @string_exp NVARCHAR(4000)  
)  
RETURNS INT  
AS  
BEGIN  
DECLARE @len INT  
SET @len = (SELECT {fn BIT_LENGTH( @string_exp )})  
RETURN(@len)  
END ;  
GO
SELECT dbo.ODBCudf('Returns the length in bits.');  
--Returns 432  

F. Gebruik van ODBC-functies in SELECT-instructies

De volgende SELECT-instructies gebruiken ODBC-functies:

DECLARE @string_exp NVARCHAR(4000) = 'Returns the length.';  
SELECT {fn BIT_LENGTH( @string_exp )};  
-- Returns 304  
  
SELECT {fn CONCAT( 'CONCAT ','returns a character string')};  
-- Returns CONCAT returns a character string  
SELECT {fn CURRENT_DATE( )};  
-- Returns today's date  
SELECT {fn CURRENT_TIME(6)};  
-- Returns the time  
  
DECLARE @date_exp NVARCHAR(30) = '2007-04-21 01:01:01.1234567';  
SELECT {fn DAYNAME( @date_exp )};  
-- Returns Saturday  
SELECT {fn DAYOFMONTH( @date_exp )};  
-- Returns 21  
SELECT {fn DAYOFWEEK( @date_exp )};  
-- Returns 7  
SELECT {fn HOUR( @date_exp)};  
-- Returns 1   
SELECT {fn MINUTE( @date_exp )};  
-- Returns 1  
SELECT {fn SECOND( @date_exp )};  
-- Returns 1  
SELECT {fn MONTHNAME( @date_exp )};  
-- Returns April  
SELECT {fn QUARTER( @date_exp )};  
-- Returns 2  
SELECT {fn WEEK( @date_exp )};  
-- Returns 16  

Zie ook

Ingebouwde functies (Transact-SQL)