?
Solved

Function to Derive Field Names from Field Values - Sql Server

Posted on 2013-05-14
4
Medium Priority
?
214 Views
Last Modified: 2013-05-15
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
Comment
Question by:Redheadache
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
4 Comments
 
LVL 21

Accepted Solution

by:
Dale Burrell earned 2000 total points
ID: 39166859
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
 
LVL 12

Expert Comment

by:funwithdotnet
ID: 39166883
Do you want to supply an ID and return the name?
0
 
LVL 49

Expert Comment

by:PortletPaul
ID: 39166891
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
 

Author Comment

by:Redheadache
ID: 39168054
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

Simplifying Server Workload Migrations

This use case outlines the migration challenges that organizations face and how the Acronis AnyData Engine supports physical-to-physical (P2P), physical-to-virtual (P2V), virtual to physical (V2P), and cross-virtual (V2V) migration scenarios to address these challenges.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Ever needed a SQL 2008 Database replicated/mirrored/log shipped on another server but you can't take the downtime inflicted by initial snapshot or disconnect while T-logs are restored or mirror applied? You can use SQL Server Initialize from Backup…
In part one, we reviewed the prerequisites required for installing SQL Server vNext. In this part we will explore how to install Microsoft's SQL Server on Ubuntu 16.04.
Using examples as well as descriptions, and references to Books Online, show the different Recovery Models available in SQL Server and explain, as well as show how full, differential and transaction log backups are performed
Using examples as well as descriptions, and references to Books Online, show the documentation available for datatypes, explain the available data types and show how data can be passed into and out of variables.

719 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question