& (Bit düzeyinde AND) (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnaliz Platformu Sistemi (PDW)Microsoft Fabric'teki SQL analiz uç noktasıMicrosoft Fabric'teki ambarMicrosoft Fabric'teki SQL veritabanı

İki tamsayı değeri arasında bit düzeyinde mantıksal AND işlem gerçekleştirir.

Transact-SQL söz dizimi kuralları

Syntax

expression & expression

Arguments

expression

Tamsayı veri türü kategorisinin veri türlerinden herhangi birinin geçerli ifadesi , bit veya ikili ya da varbinary veri türleri. ifadesi , bit düzeyinde işlem için ikili sayı olarak değerlendirilir.

Note

Bit düzeyinde bir işlemde, yalnızca bir ifadeikili veya varbinary veri türünde olabilir.

Dönüş türleri

  • giriş değerleri int ise int.
  • giriş değerleri smallint ise smallint.
  • giriş değerleri tinyint veya bit ise tinyint.

Remarks

& Bit düzeyinde işleç, iki ifade arasında bit düzeyinde bir mantıksal AND işlem gerçekleştirir ve her iki ifade için de karşılık gelen her biti alır. Sonuçtaki bitler, yalnızca giriş ifadelerindeki her iki bitin de (çözümlenen bit için) değerine 1sahip olması durumunda ve olarak ayarlanır1. Aksi takdirde, sonuçtaki bit olarak 0ayarlanır.

Sol ve sağ ifadelerin farklı tamsayı veri türleri varsa (örneğin, sol ifadesmallint ve sağ ifadeint ise), küçük veri türünün bağımsız değişkeni daha büyük veri türüne dönüştürülür. Bu durumda, smallintifadesi bir int'e dönüştürülür.

Examples

Aşağıdaki örnek, değerleri depolamak için int veri türünü kullanarak bir tablo oluşturur ve bir satıra iki değer ekler.

CREATE TABLE bitwise
(
    a_int_value INT NOT NULL,
    b_int_value INT NOT NULL
);
GO

INSERT bitwise
VALUES (170, 75);
GO

Bu sorgu, ve b_int_value sütunları arasında a_int_value bit düzeyinde AND gerçekleştirir.

SELECT a_int_value & b_int_value
FROM bitwise;
GO

Sonuç kümesi aşağıdadır.

-----------
10

170 'in ikili gösterimi (a_int_value veya A) şeklindedir 0000 0000 1010 1010. 75 'in ikili gösterimi (b_int_value veya B) şeklindedir 0000 0000 0100 1011. Bu iki değer üzerinde bit düzeyinde AND işlem gerçekleştirildiğinde, ondalık 10 olan ikili sonuç 0000 0000 0000 1010elde edilir.

(A & B)
0000 0000 1010 1010
0000 0000 0100 1011
-------------------
0000 0000 0000 1010