Bagikan melalui


Klausa SELECT (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceTitik akhir analitik SQL di Microsoft FabricGudang di Microsoft FabricDatabase SQL di Microsoft Fabric

Menentukan kolom yang dikembalikan kueri Transact-SQL (T-SQL).

Konvensi sintaks transact-SQL

Syntax

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 ]

Arguments

ALL

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

DISTINCT

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

TOP (ekspresi) [ PERCENT ] [ WITH TIES ]

Menunjukkan bahwa hanya set pertama tertentu atau persentase baris yang dikembalikan dari kumpulan hasil kueri. ekspresi dapat berupa angka atau persentase baris.

Meskipun TOP <expression> tanpa tanda kurung didukung dalam SELECT pernyataan untuk kompatibilitas mundur, hindari sintaks ini. Untuk informasi selengkapnya, lihat TOP.

<select_list>

Menentukan kolom yang akan dipilih untuk kumpulan hasil. Daftar pilih adalah serangkaian ekspresi yang dipisahkan oleh koma. Jumlah maksimum ekspresi yang dapat Anda tentukan dalam daftar pemilihan adalah 4.096.

*

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

| | _alias.*

Membatasi cakupan * ke tabel atau tampilan yang ditentukan.

column_name

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

expression

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), ALTER TABLE, dan CREATE TABLE.

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

$ROWGUID

Mengembalikan kolom GUID baris.

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

udt_column_name

Nama kolom jenis yang ditentukan pengguna runtime bahasa umum (CLR) untuk dikembalikan.

Note

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 dan CONVERT atau CAST dan CONVERT.

{ . | :: }

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

property_name

Properti publik udt_column_name.

field_name

Anggota data publik udt_column_name.

method_name

Metode publik udt_column_name yang mengambil satu atau beberapa argumen. method_name tidak bisa menjadi metode mutator.

Contoh berikut memilih nilai untuk Location kolom, yang didefinisikan sebagai titik jenis, 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 AS POINT (32, 23),
        @distance AS FLOAT;

SELECT Location.Distance(@p)
FROM Cities;

column_alias

Nama alternatif untuk mengganti nama kolom dalam kumpulan hasil kueri. Misalnya, alias seperti Quantity, atau Quantity ke Date, atau Qty dapat ditentukan untuk kolom bernama quantity.

Anda dapat menggunakan alias untuk menentukan nama untuk hasil ekspresi, misalnya:

USE AdventureWorks2025;
GO

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

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

Remarks

Saat Anda menyertakan kolom teks atau teks teks dalam daftar pilih, panjang data yang dikembalikan adalah nilai terkecil dari opsi berikut:

  • ukuran aktual kolom teks ,
  • pengaturan sesi default TEXTSIZE , atau
  • batas aplikasi yang dikodekan secara permanen.

Untuk mengubah panjang teks yang dikembalikan untuk sesi, gunakan SET pernyataan . Secara default, batas panjang data teks yang SELECT dikembalikan oleh pernyataan 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 menghasilkan SELECT baris hasil atau baris tabel kerja perantara yang melebihi 8.060 byte.

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

Kesalahan terjadi jika Anda tidak menentukan nama kolom untuk kolom yang dibuat oleh pernyataan SELECT INTO atau CREATE VIEW .