Dize birleştirmesi SQLite'de çalışmıyor


136

SQlite yerine koyma işlevini yürütmeye çalışıyorum, ancak işlevde başka bir alan kullanıyorum.

select  locationname + '<p>' from location;

Bu ekran alıntısında sonuç 0'ların listesidir. Ben locationname ve '<p>'değişmezi gelen metin ile bir dize beklenirdi .

Yanıtlar:


266

||Yerine kullanmayı deneyin+

select  locationname || '<p>' from location;

Gönderen SQLite belgeler :

|| operatörü "birleştirme" dir - işlenenlerinin iki dizesini birleştirir.


26
alan1 || alanlardan biri boşsa, alan2 null değerini döndürür. Birisi ifnull (field1, '') || ifnull (field2, '') yapmak isteyebilir. Alanlardan biri veya her ikisi de boşsa, bu size bir yanıt verecektir. Sonra her ikisi de boşsa ne yapmak istediğinizi anlayabilirsiniz.
Tom Cerul

5
@TomCerul veya kullanımıCOALESCE(nullable_field, '') || COALESCE(another_nullable_field, '')
zx8754 3:14

38

||Operatör SQLite'ta birleşimidir. Bu kodu kullanın:

select  locationname || '<p>' from location;

11
Çift boru, Oracle ve PostgreSQL'de de desteklenen dizeleri birleştirme ANSI yöntemidir ...
OMG Ponies

32

Karşılaştırma için,

SQLite ||  
Oracle CONCAT (dize1, dize2) veya ||
MySQL CONCAT (dize1, dize2, dize3 ...) veya || PIPES_AS_CONCAT etkinse
Postgres CONCAT (dize1, dize2, dize3 ...) veya ||
Microsoft SQL Server 2012+ CONCAT (dize1, dize2, dize3 ...) veya + 
Microsoft Access +  

1
2012'den başlayarak, SQL Server da destekliyorCONCAT(string1, string2, string3...)
Tim Cooke

1
MySQL ||, PIPES_AS_CONCATmodun etkin olup olmadığını da destekler .
Paul Spiegel

2

Visual Studio 2010 için, Veri Kaynakları tasarımcısını veya sihirbazını kullanarak || Şebeke. Sqlite db'de bir görünüm oluşturun ve bundan veri kaynaklarınızı oluşturun.

Ayrıca bu konuya bakın .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.