Bagikan melalui


Fungsi Skalar ODBC (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)Titik akhir analitik SQL di Microsoft FabricWarehouse di Microsoft Fabric

Anda dapat menggunakan Fungsi Skalar ODBC dalam pernyataan Transact-SQL. Pernyataan ini ditafsirkan oleh SQL Server. Mereka dapat digunakan dalam prosedur tersimpan dan fungsi yang ditentukan pengguna. Ini termasuk fungsi string, numerik, waktu, tanggal, interval, dan sistem.

Penggunaan

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

Fungsi

Tabel berikut mencantumkan fungsi skalar ODBC yang tidak diduplikasi dalam Transact-SQL.

Fungsi string

Function Deskripsi
BIT_LENGTH( string_exp ) (ODBC 3.0) Mengembalikan panjang dalam bit ekspresi string.

Mengembalikan ukuran internal dari jenis data yang diberikan, tanpa mengonversi string_exp menjadi string.
CONCAT( string_exp1,string_exp2) (ODBC 1.0) Mengembalikan string karakter yang merupakan hasil dari menggabungkan string_exp2 ke string_exp1. String yang dihasilkan bergantung pada DBMS. Misalnya, jika kolom yang diwakili oleh string_exp1 berisi nilai NULL, DB2 akan mengembalikan NULL tetapi SQL Server akan mengembalikan string non-NULL.
OCTET_LENGTH( string_exp ) (ODBC 3.0) Mengembalikan panjang dalam byte ekspresi string. Hasilnya adalah bilangan bulat terkecil tidak kurang dari jumlah bit yang dibagi 8.

Mengembalikan ukuran internal dari jenis data yang diberikan, tanpa mengonversi string_exp menjadi string.

Fungsi Numerik

Function Deskripsi
TRUNCATE( numeric_exp, integer_exp) (ODBC 2.0) Mengembalikan numeric_exp terpotong ke kanan posisi integer_exp dari titik desimal. Jika integer_exp negatif, numeric_exp dipotong ke |integer_exp| posisi di sebelah kiri titik desimal.

Fungsi Waktu, Tanggal, dan Interval

Function Deskripsi
CURRENT_DATE( ) (ODBC 3.0) Mengembalikan tanggal saat ini.
CURDATE( ) (ODBC 3.0) Mengembalikan tanggal saat ini.
[( time-precision )] CURRENT_TIME (ODBC 3.0) Mengembalikan waktu lokal saat ini. Argumen presisi waktu menentukan presisi detik dari nilai yang dikembalikan
CURTIME() (ODBC 3.0) Mengembalikan waktu lokal saat ini.
DAYNAME( date_exp ) (ODBC 2.0) Mengembalikan string karakter yang berisi nama khusus sumber data hari itu untuk bagian hari date_exp. Misalnya, namanya adalah Minggu hingga Sabtu atau Matahari. melalui Sat. untuk sumber data yang menggunakan bahasa Inggris. Namanya Sonntag melalui Samstag untuk sumber data yang menggunakan bahasa Jerman.
DAYOFMONTH( date_exp ) (ODBC 1.0) Mengembalikan hari dalam sebulan, berdasarkan bidang bulan dalam date_exp, sebagai bilangan bulat. Nilai yang dikembalikan berada dalam rentang 1-31.
DAYOFWEEK( date_exp ) (ODBC 1.0) Mengembalikan hari dalam seminggu berdasarkan bidang minggu dalam date_exp sebagai bilangan bulat. Nilai yang dikembalikan berada dalam rentang 1-7, di mana 1 mewakili Hari Minggu.
HOUR( time_exp ) (ODBC 1.0) Mengembalikan jam, berdasarkan bidang jam dalam time_exp, sebagai nilai bilangan bulat dalam rentang 0-23.
MINUTE( time_exp ) (ODBC 1.0) Mengembalikan menit, berdasarkan bidang menit di time_exp, sebagai nilai bilangan bulat dalam rentang 0-59.
SECOND( time_exp ) (ODBC 1.0) Mengembalikan yang kedua, berdasarkan bidang kedua dalam time_exp, sebagai nilai bilangan bulat dalam rentang 0-59.
MONTHNAME( date_exp ) (ODBC 2.0) Mengembalikan string karakter yang berisi nama khusus sumber data bulan untuk bagian bulan date_exp. Misalnya, namanya adalah Januari hingga Desember atau Jan. hingga Des. untuk sumber data yang menggunakan bahasa Inggris. Namanya adalah Januari hingga Dezember untuk sumber data yang menggunakan bahasa Jerman.
QUARTER( date_exp ) (ODBC 1.0) Mengembalikan kuartal dalam date_exp sebagai nilai bilangan bulat dalam rentang 1-4, di mana 1 mewakili 1 Januari hingga 31 Maret.
WEEK( date_exp ) (ODBC 1.0) Mengembalikan minggu dalam setahun, berdasarkan bidang minggu dalam date_exp, sebagai nilai bilangan bulat dalam rentang 1-53.

Contoh

J. Menggunakan fungsi ODBC dalam prosedur tersimpan

Contoh berikut menggunakan fungsi ODBC dalam prosedur tersimpan:

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

B. Menggunakan Fungsi ODBC dalam fungsi yang ditentukan pengguna

Contoh berikut menggunakan fungsi ODBC dalam fungsi yang ditentukan pengguna:

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  

Catatan

Microsoft Fabric memang mendukung fungsi skalar ODBC, tetapi saat ini tidak mendukung fungsi yang ditentukan pengguna yang mengembalikan nilai, seperti yang ditunjukkan dalam Contoh B.

C. Menggunakan fungsi ODBC dalam pernyataan SELECT

Pernyataan SELECT berikut menggunakan fungsi ODBC:

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  

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

D. Menggunakan fungsi ODBC dalam prosedur tersimpan

Contoh berikut menggunakan fungsi ODBC dalam prosedur tersimpan:

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

E. Menggunakan Fungsi ODBC dalam fungsi yang ditentukan pengguna

Contoh berikut menggunakan fungsi ODBC dalam fungsi yang ditentukan pengguna:

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. Menggunakan fungsi ODBC dalam pernyataan SELECT

Pernyataan SELECT berikut menggunakan fungsi ODBC:

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  

Lihat Juga

Fungsi Bawaan (Transact-SQL)