Want to protect your cyber security and still get fast solutions? Ask a secure question today.Go Premium

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 219
  • Last Modified:

Function to Derive Field Names from Field Values - Sql Server

Hi all,
I've been trying to write a function to derive values from a table that I need to use for a sql server.  The Parameter to pass in is a unique identifier - AttributeID and the field name will be AttributeName.  

AttributeID                                                       AttributeName
AABA0A56-1736-4822-99BE-02E33E1B1B57      Department
EB19A347-C50F-4440-BF3E-359FB5F95987      Address
BC1E774F-A36F-4FDD-BD1A-35B398DF7142      Last Name
61D62DCA-C8B9-4B84-B3A4-37560F8652F8      First Name
53372579-B97C-4901-9ED8-3791B3DA05BF      Date of Birth

Has anyone done something like this before?  I'm not sure where to begin.

Thanks,
Julia
0
Redheadache
Asked:
Redheadache
1 Solution
 
Dale BurrellDirectorCommented:
If I understand you correctly, one of the two following options:

-- SVF - straight forward
create function dbo.Attribute_Name
(
  @Id varchar(38) -- or uniqueidentifier, varchar(38) will handle both int and guid
)
returns nvarchar(256) -- whatever is the max size of name
as
begin
  return (select Name from AttributeTable where id = @Id)
end

select dbo.Attribute_Name('123-123-123-12') -- Usage

-- OR

-- ITVF, often better performing, but slightly messier
create function dbo.Attribute_Name
(
  @Id varchar(38) -- or uniqueidentifier, varchar(38) will handle both int and guid
)
returns table
return (select Name from AttributeTable where id = @Id)

select (select top 1 Name from dbo.Attribute_Name('123-13-123-')) -- Usage

Open in new window

0
 
funwithdotnetCommented:
Do you want to supply an ID and return the name?
0
 
PortletPaulCommented:
mmm, I smell a performance rat

Is there more than just that one table involved here? those sample records look to me like pointers to some non-normalized data in some other table(s).
0
 
RedheadacheAuthor Commented:
That's correct, supply an ID and return the name.  Then I need to use the name returned as a field name in a select statement.  I think I use brackets or something for that but I'll test it this morning to figure it out.

It is non-normalized raw data  - that's correct.  This is a thing that I will develop properly in the future but for now I just need something quick and dirty that I can reuse until I have time to get this data into a star schema and put together an analytic.  

It's a start up company and there are five thousand different projects going on so every second I save is one I can spend sleeping.

I'll try the suggestion above.  Thanks much for the quick responses.

J
0

Featured Post

Free Tool: Subnet Calculator

The subnet calculator helps you design networks by taking an IP address and network mask and returning information such as network, broadcast address, and host range.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now