lunes, 29 de mayo de 2017

Quitar saltos de linea de campo en consulta de sqlserver (quitar los ENTERs)

En ocasiones cuando se almacena algún dato de texto en un campo nvarchar o char de sql y este tiene implícitos saltos de linea, estos se guardan en el campo, lo que puede ocasionar problemas al generar reportes en excel ya que hace saltos de linea.

Ejemplo de campo con saltos de linea:

En campo:



Copiado y pegado:

Poniente 140 No. 720
Col. Industrial Vallejo
C.P. 02300, Azcapotzalco, Ciudad de México.


Pegando en excel:
Número Telefonico Direccion CódigoDePais
XXXXXX Poniente 140 No. 720
Col. Industrial Vallejo
C.P. 02300, Azcapotzalco, Ciudad de México.


Solución.

MEX
select
[Número Telefonico]  ,
REPLACE(REPLACE(REPLACE(convert(nvarchar(max),Direccion),CHaR(10),' ') ,CHaR(13),' ') ,'  ',' ')   ,
CódigoDePais
from  
nametable

domingo, 28 de mayo de 2017

Concatenar varios registros de una columna en una sola cadena SQL

Es probable que tengamos varios registros pertenecientes a una columna o campo que debamos concatenar y mostrar en una sola cadena. Algo así:
Descripción
===========
valor 1
valor 2
valor 3
y necesitamos obtener algo así:
valor 1,valor 2,valor 3
es decir, como si tuviéramos que trasponer la columna, pero sin complicarnos.
La solución es la siguiente:
DECLARE @valores VARCHAR(1000)
SELECT @valores= COALESCE(@valores + ', ', '') + descripcion FROM tabla
select @valores as valores

domingo, 21 de mayo de 2017

Conocer la versión exacta de SQL Server

Hay algunas aplicaciones que necesitan tener una versión en específica de SQL Server.

Esta información se puede obtener haciendo una simple consulta a la base de datos:

SELECT @@VERSION
El resultado es algo así:

Microsoft SQL Server 2012 – 11.0.2100.60 (X64)
Feb 10 2012 19:39:15
Copyright (c) Microsoft Corporation
Enterprise Edition (64-bit) on Windows NT 6.2 (Build 8400: )


El numero 11.0.2100.60 corresponde a la versión de SQL Server. Para saber la versión exacta de fácil lectura, hay que buscar el valor en la tabla del siguiente sitio web: