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 


Windows Commands

takeown /f filename
icacls filename /grant username:f

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