La concatenación de cadenas no funciona en SQLite


136

Estoy tratando de ejecutar una función de reemplazo SQlite, pero uso otro campo en la función.

select  locationname + '<p>' from location;

En este recorte, el resultado es una lista de 0s. Hubiera esperado una cadena con el texto de locationname y los '<p>'literales.

Respuestas:


266

Intente usar ||en lugar de+

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

De la documentación de SQLite :

El || El operador es "concatenar": une las dos cadenas de sus operandos.


26
campo1 || field2 devuelve nulo si uno de los campos es nulo. Es posible que desee hacer ifnull (field1, '') || ifnull (field2, ''). Eso le dará una respuesta si uno o ambos campos son nulos. Luego puedes averiguar qué quieres hacer si ambos son nulos.
Tom Cerul

55
@TomCerul o usoCOALESCE(nullable_field, '') || COALESCE(another_nullable_field, '')
zx8754

38

El ||operador es la concatenación en SQLite. Usa este código:

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

11
La doble tubería también es el método ANSI de concatenación de cadenas, también compatible con Oracle y PostgreSQL ...
OMG Ponies

32

Para comparacion,

SQLite ||  
Oracle CONCAT (cadena1, cadena2) o ||
MySQL CONCAT (cadena1, cadena2, cadena3 ...) o || si PIPES_AS_CONCAT habilitado
Postgres CONCAT (cadena1, cadena2, cadena3 ...) o ||
Microsoft SQL Server 2012+ CONCAT (cadena1, cadena2, cadena3 ...) o + 
Microsoft Access +  

1
A partir de 2012, SQL Server también es compatibleCONCAT(string1, string2, string3...)
Tim Cooke,

1
MySQL también es compatible ||si el PIPES_AS_CONCATmodo está habilitado.
Paul Spiegel

2

para Visual Studio 2010, con el diseñador o asistente de orígenes de datos, tiene problemas para usar || operador. Cree una vista en el sqlite db y cree sus fuentes de datos a partir de eso.

Ver también este hilo .

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.