Klausul SELECT (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instancetitik akhir analitik SQL di Microsoft FabricWarehouse di Microsoft Fabric

Menentukan kolom yang akan dikembalikan oleh kueri.

Konvensi sintaks transact-SQL

Sintaksis

SELECT [ ALL | DISTINCT ]  
[ TOP ( expression ) [ PERCENT ] [ WITH TIES ] ]   
<select_list>   
<select_list> ::=   
    {   
      *   
      | { table_name | view_name | table_alias }.*   
      | {  
          [ { table_name | view_name | table_alias }. ]  
               { column_name | $IDENTITY | $ROWGUID }   
          | udt_column_name [ { . | :: } { { property_name | field_name }   
            | method_name ( argument [ ,...n] ) } ]  
          | expression  
         }  
        [ [ AS ] column_alias ]   
      | column_alias = expression   
    } [ ,...n ]   

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

Argumen

ALL
Menentukan bahwa baris duplikat dapat muncul dalam tataan hasil. ALL adalah default.

NYATA
Menentukan bahwa hanya baris unik yang dapat muncul dalam tataan hasil. Nilai null dianggap sama untuk tujuan kata kunci DISTINCT.

TOP (ekspresi ) [ PERCENT ] [ WITH TIES ]
Menunjukkan bahwa hanya kumpulan pertama yang ditentukan atau persentase baris yang akan dikembalikan dari kumpulan hasil kueri. ekspresi dapat berupa angka atau persentase baris.

Untuk kompatibilitas mundur, menggunakan ekspresi TOP tanpa tanda kurung dalam pernyataan SELECT didukung, tetapi kami tidak merekomendasikannya. Untuk informasi selengkapnya, lihat TOP (Transact-SQL).

<> select_list Kolom yang akan dipilih untuk kumpulan hasil. Daftar pilih adalah serangkaian ekspresi yang dipisahkan oleh koma. Jumlah maksimum ekspresi yang dapat ditentukan dalam daftar pemilihan adalah 4096.

*
Menentukan bahwa semua kolom dari semua tabel dan tampilan dalam klausa FROM harus dikembalikan. Kolom dikembalikan menurut tabel atau tampilan, seperti yang ditentukan dalam klausa FROM, dan dalam urutan kolom tersebut ada dalam tabel atau tampilan.

| table_name view_name | table_alias.*
Membatasi cakupan * ke tabel atau tampilan yang ditentukan.

column_name
Adalah nama kolom yang akan dikembalikan. Memenuhi syarat column_name untuk mencegah referensi ambigu, seperti terjadi ketika dua tabel dalam klausa FROM memiliki kolom dengan nama duplikat. Misalnya, tabel SalesOrderHeader dan SalesOrderDetail dalam AdventureWorks2022 database keduanya memiliki kolom bernama ModifiedDate. Jika kedua tabel digabungkan dalam kueri, tanggal entri SalesOrderDetail yang dimodifikasi dapat ditentukan dalam daftar pilih sebagai SalesOrderDetail.ModifiedDate.

expression
Adalah konstanta, fungsi, kombinasi nama kolom, konstanta, dan fungsi yang terhubung oleh operator atau operator, atau subkueri.

$IDENTITY
Mengembalikan kolom identitas. Untuk informasi selengkapnya, lihat IDENTITY (Property) (Transact-SQL), ALTER TABLE (Transact-SQL), dan CREATE TABLE (Transact-SQL).

Jika lebih dari satu tabel dalam klausa FROM memiliki kolom dengan properti IDENTITY, $IDENTITY harus memenuhi syarat dengan nama tabel tertentu, seperti T1.$IDENTITY.

$ROWGUID
Mengembalikan kolom GUID baris.

Jika ada lebih dari satu tabel dalam klausa FROM dengan properti ROWGUIDCOL, $ROWGUID harus memenuhi syarat dengan nama tabel tertentu, seperti T1.$ROWGUID.

udt_column_name
Adalah nama kolom jenis yang ditentukan pengguna runtime bahasa umum (CLR) untuk dikembalikan.

Catatan

SQL Server Management Studio mengembalikan nilai jenis yang ditentukan pengguna dalam representasi biner. Untuk mengembalikan nilai jenis yang ditentukan pengguna dalam format string atau XML, gunakan CAST atau CONVERT.

{ . | :: }
Menentukan metode, properti, atau bidang dari jenis yang ditentukan pengguna CLR. Gunakan . untuk metode, properti, atau bidang instans (nonstatic). Gunakan :: untuk metode statis, properti, atau bidang. Untuk memanggil metode, properti, atau bidang dari jenis yang ditentukan pengguna CLR, Anda harus memiliki izin EXECUTE pada jenis tersebut.

property_name
Adalah properti publik udt_column_name.

field_name
Adalah anggota data publik dari udt_column_name.

method_name
Adalah metode publik udt_column_name yang mengambil satu atau beberapa argumen. method_name tidak dapat menjadi metode mutator.

Contoh berikut memilih nilai untuk Location kolom, yang didefinisikan sebagai jenis point, dari Cities tabel, dengan memanggil metode jenis yang disebut Distance:

CREATE TABLE dbo.Cities (  
     Name VARCHAR(20),  
     State VARCHAR(20),  
     Location POINT);  
GO  
DECLARE @p POINT (32, 23), @distance FLOAT;  
GO  
SELECT Location.Distance (@p)  
FROM Cities;  

column_alias
Adalah nama alternatif untuk mengganti nama kolom dalam kumpulan hasil kueri. Misalnya, alias seperti Kuantitas, atau Kuantitas ke Tanggal, atau Qty dapat ditentukan untuk kolom bernama kuantitas.

Alias digunakan juga untuk menentukan nama untuk hasil ekspresi, misalnya:

USE AdventureWorks2022;  
GO  
SELECT AVG(UnitPrice) AS [Average Price]  
FROM Sales.SalesOrderDetail;

column_alias dapat digunakan dalam klausa ORDER BY. Namun, ini tidak dapat digunakan dalam klausa WHERE, GROUP BY, atau HAVING. Jika ekspresi kueri adalah bagian dari pernyataan DECLARE CURSOR, column_alias tidak dapat digunakan dalam klausa FOR UPDATE.

Keterangan

Panjang data yang dikembalikan untuk kolom teks atau teks teks yang disertakan dalam daftar pemilihan diatur ke nilai terkecil dari yang berikut ini: ukuran aktual kolom teks , pengaturan sesi TEXTSIZE default, atau batas aplikasi yang dikodekan secara permanen. Untuk mengubah panjang teks yang dikembalikan untuk sesi, gunakan pernyataan SET. Secara default, batas panjang data teks yang dikembalikan dengan pernyataan SELECT adalah 4.000 byte.

Mesin Database SQL Server memunculkan pengecualian 511 dan mengembalikan pernyataan yang sedang berjalan saat ini jika salah satu perilaku berikut terjadi:

  • Pernyataan SELECT menghasilkan baris hasil atau baris tabel kerja perantara melebihi 8.060 byte.

  • Pernyataan DELETE, INSERT, atau UPDATE mencoba tindakan pada baris yang melebihi 8.060 byte.

Kesalahan terjadi jika tidak ada nama kolom yang ditentukan ke kolom yang dibuat oleh pernyataan SELECT INTO atau CREATE VIEW.

Lihat Juga

Contoh SELECT (Transact-SQL)
Ekspresi (Transact-SQL)
SELECT (Transact-SQL)