Translate
Friday, March 29, 2013
Split into table
FUNCTION [dbo].[udf_SplitRecordIDs]
(
@CsvList varchar(500)
)
RETURNS
@ParsedList table
(
ID int
)
AS
BEGIN
DECLARE @ID varchar(10), @Pos int
DECLARE @delimiter char = ','
SET @CsvList = LTRIM(RTRIM(@CsvList))+ @delimiter
SET @Pos = CHARINDEX(@delimiter, @CsvList, 1)
IF REPLACE(@CsvList, @delimiter, '') <> ''
BEGIN
WHILE @Pos > 0
BEGIN
SET @ID = LTRIM(RTRIM(LEFT(@CsvList, @Pos - 1)))
IF @ID <> ''
BEGIN
INSERT INTO @ParsedList (ID) VALUES (CAST(@ID AS int))
END
SET @CsvList = RIGHT(@CsvList, LEN(@CsvList) - @Pos)
SET @Pos = CHARINDEX(@delimiter, @CsvList, 1)
END
END
RETURN
END
Labels:
Transact-Sql
Tuesday, March 26, 2013
Grouping
select top(100) percent
ID
,AddressID
from
(
SELECT
ID
,rn = row_number() over (partition by ID order by ID, AddressID)
FROM [dbo].[Fac]
INNER JOIN [dbo].[FacAddress] ON Fac.ID = FacAddress.ID
) A
where (a.rn = 1)
order by FacilityID
ID
,AddressID
from
(
SELECT
ID
,rn = row_number() over (partition by ID order by ID, AddressID)
FROM [dbo].[Fac]
INNER JOIN [dbo].[FacAddress] ON Fac.ID = FacAddress.ID
) A
where (a.rn = 1)
order by FacilityID
Labels:
Transact-Sql