SQL Server 2016 preview is out. It has lot of new features
http://www.microsoft.com/en-us/server-cloud/products/sql-server-2016/
Tuesday, August 18, 2015
Wednesday, March 25, 2015
Fibonacci series with T-SQL
DECLARE @intEnd INT = 1000 --change this to
what ever fibonacci series you want. Make sure the results fit in integer
datatype. if not change them to BIGINT or DECIMAL/FLOAT
DECLARE @vchFinalOutPut VARCHAR(MAX) = ' '
DECLARE @intResult INT = 0
DECLARE @intNextValue INT = 1
WHILE @intStart < @intEnd
BEGIN
SET @vchFinalOutPut = @vchFinalOutPut + ',' + LTRIM(RTRIM(STR(@intStart)))
SET @intResult = @intStart --Store the start value
SET @intStart = @intNextValue
SET @intNextValue = @intResult + @intNextValue --Add previous and
current value
END
PRINT LTRIM(RTRIM(STUFF(@vchFinalOutPut,PATINDEX('%,%', @vchFinalOutPut),1,'')))
Tuesday, March 18, 2014
RIGHT functionality without using builtin RIGHT function
(
@InputString NVARCHAR(MAX)
,@RightValues INT
)
RETURNS NVARCHAR(MAX)
AS
BEGIN
DECLARE @Count INT = 0
,@Len INT
,@Output NVARCHAR(MAX) =''
SET @Len = LEN(@InputString)
IF @Len < @RightValues
BEGIN
RETURN NULL
END
ELSE
BEGIN
WHILE (@Count < @RightValues)
BEGIN
SET @Output = SUBSTRING(@InputString, @Len-@Count,1) + @Output
SET @Count = @Count + 1
END
END
RETURN @Output
END
SELECT dbo.RightValues('abc',4)
Thursday, March 28, 2013
Remove bad characters from a string
This simple CTE can be used to remove bad characters in string. It will take string and allowed characters and returns neat string. Change the @AllowedPattern as you wish and check the output string. For example if you have a string abc@#$()123 and you want a string abc123, Set allowedPattern to '0-9a-z. With little tweak this can be converted to a function.
DECLARE @String VARCHAR(8000),
@AllowedPattern VARCHAR(100),
@Holder VARCHAR(8000)
SET @String = '!@#$% 123 ??abc##rd,,,'
SET @AllowedPattern = '0-9a-z'
SET @Holder = ''
;WITH t1 AS (SELECT 1 N UNION ALL SELECT 1 N),
t2 AS (SELECT 1 N FROM t1 x, t1 y),
t3 AS (SELECT 1 N FROM t2 x, t2 y),
t4 AS (SELECT 1 N FROM t3 x, t3 y),
tally AS (SELECT ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS num
FROM t4 x, t4 y)
SELECT @Holder = @Holder + SUBSTRING(@String,num,1)
FROM tally
WHERE num <= LEN(@String)
AND PATINDEX('['+@AllowedPattern+']',SUBSTRING(@String,num,1)) = 1
SELECT @Holder
DECLARE @String VARCHAR(8000),
@AllowedPattern VARCHAR(100),
@Holder VARCHAR(8000)
SET @String = '!@#$% 123 ??abc##rd,,,'
SET @AllowedPattern = '0-9a-z'
SET @Holder = ''
;WITH t1 AS (SELECT 1 N UNION ALL SELECT 1 N),
t2 AS (SELECT 1 N FROM t1 x, t1 y),
t3 AS (SELECT 1 N FROM t2 x, t2 y),
t4 AS (SELECT 1 N FROM t3 x, t3 y),
tally AS (SELECT ROW_NUMBER() OVER (ORDER BY (SELECT NULL)) AS num
FROM t4 x, t4 y)
SELECT @Holder = @Holder + SUBSTRING(@String,num,1)
FROM tally
WHERE num <= LEN(@String)
AND PATINDEX('['+@AllowedPattern+']',SUBSTRING(@String,num,1)) = 1
SELECT @Holder
Thursday, March 14, 2013
Convert a given string into Lowercase without using LOWER..
Continuation to previous post...converting a string to lower case string
CREATE FUNCTION
udfLower
(
@InputString NVARCHAR(MAX)
)
RETURNS NVARCHAR(MAX)
AS
BEGIN
DECLARE
@LowerString NVARCHAR(MAX) = ''
DECLARE @Counter INT = 1
DECLARE
@Character CHAR = ''
DECLARE
@AsciiValue TINYINT
DECLARE
@NewAsciiValue TINYINT
WHILE (@Counter <= LEN(@InputString))
BEGIN
SET @Character = SUBSTRING(@InputString,@Counter,1)
IF ASCII(@Character) BETWEEN 65 AND 90
BEGIN
SET
@NewAsciiValue = ASCII(@Character) + 32
SET @LowerString = @LowerString + CHAR(@newAsciiValue)
END
ELSE
BEGIN
SET @LowerString = @LowerString + @Character
END
SET @Counter = @Counter + 1
END
RETURN @LowerString
END
GO
SELECT dbo.udfLower('this is a test
STRingdadas@#@#@')
Convert given string into upper case with out using builtin UPPER function
How to convert a given string into upper case string without using builtin UPPER function. Below is the code.
CREATE FUNCTION
udfUpper
(
@InputString NVARCHAR(MAX)
)
RETURNS NVARCHAR(MAX)
AS
BEGIN
DECLARE
@UpperString NVARCHAR(MAX) = ''
DECLARE @Counter INT = 1
DECLARE
@Character CHAR = ''
DECLARE
@AsciiValue TINYINT
DECLARE
@NewAsciiValue TINYINT
WHILE (@Counter <= LEN(@InputString))
BEGIN
SET @Character = SUBSTRING(@InputString,@Counter,1)
IF ASCII(@Character) BETWEEN 97 AND 122
BEGIN
SET
@NewAsciiValue = ASCII(@Character) - 32
SET @UpperString = @UpperString + CHAR(@newAsciiValue)
END
ELSE
BEGIN
SET @UpperString = @UpperString + @Character
END
SET @Counter = @Counter + 1
END
RETURN @UpperString
END
GO
SELECT dbo.udfUpper('this is a test
STRingdadas@#@#@')
Tuesday, February 12, 2013
Create a flat file utility
This is my first post WRT C# and/OR VB.NET. At work I was given a task to create a utility that will generate a flat file where we can pass database servername, databasename, procedurename (no parameterized procs and which spit out multiple resultsets), Output file path, output file name, fileextension, column delimiter (comma,tab,colon,semicolon,pipe), header required (Yes/no/y/n), append timestamp to filename, row terminator(unix/windows). I came up with a solution to create a console application in both c# and VB.NET.
Here is the VB.NET code. This works only with SQL Server connections
Example:
CreateFlatFile.exe Server DB Procedure FilePath FileName .csv colon y y unix. Syntax is same for C# as well.
VB code
Csharp code
Here is the VB.NET code. This works only with SQL Server connections
Example:
CreateFlatFile.exe Server DB Procedure FilePath FileName .csv colon y y unix. Syntax is same for C# as well.
VB code
Csharp code
Subscribe to:
Comments (Atom)