Solved

Joining part of a field to another table

Posted on 2007-04-03
5
162 Views
Last Modified: 2010-03-19
Dear Experts

I have two tables

Documents
=========
Document_Filename (i.e. nick.gif)

FileTypes
=========
FileType_Name
FileType_Description

How can I extract the extension description from FileTypes (FileType_Description) from Document_Filename (where available)

I'm looking for the following result from my query:

Document_Filename  |  TypeOfFile
nick.gif                        CompuServe GIF

Any help would be appreciated

Nick
0
Comment
Question by:nkewney
  • 2
  • 2
5 Comments
 
LVL 50

Expert Comment

by:Lowfatspread
ID: 18847479
which database system the sql syntax varies...
obviously you should hold the filetype as a distinct column in your table and then this would be unnecessary...
0
 
LVL 50

Accepted Solution

by:
Lowfatspread earned 500 total points
ID: 18847507
you could try ,..

select document_filename
    ,case when filetype_description is null then 'Unknown fileType'
                 else filetype_description end as typeoffile
 from documents as d
 left outer join filetypes as ft
  on d.document_filename + ' ' like '%.' + ft.name + ' %'  
0
 
LVL 11

Expert Comment

by:f_o_o_k_y
ID: 18847514
Hello

You can use this function to extract file extension:
RIGHT('File_name',charindex('.',reverse(File_name))-1)
It returns substring after the last . (dot)

I hope this can help you

Best Regards
FooKy
0
 
LVL 11

Expert Comment

by:f_o_o_k_y
ID: 18847525
Lowfatspread:
When i use Your code and use filename sth.gif.whatever.exe i can get wrong result

Correct me if im wrong.
0
 
LVL 11

Expert Comment

by:dready
ID: 18847560
If you are sure there is always just one '.' in the Document_Filename, you could use sqls substr and charindex functions.

SELECT SUBSTR(Document_Filename, charindex('.', Document_Filename))  from documents

should give  you the extension. If it has the . with it, you have to add a + 1 after the charindex.


The join could probably be done like:
SELECT documents.Document_Filename, FileTypes.FileType_Description from
documents left join FileTypes on FileTypes.FileType_Name = SUBSTR(Document_Filename, charindex('.', Document_Filename))

not sure, but give it a try
0

Featured Post

NFR key for Veeam Backup for Microsoft Office 365

Veeam is happy to provide a free NFR license (for 1 year, up to 10 users). This license allows for the non‑production use of Veeam Backup for Microsoft Office 365 in your home lab without any feature limitations.

Question has a verified solution.

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

Suggested Solutions

Never store passwords in plain text or just their hash: it seems a no-brainier, but there are still plenty of people doing that. I present the why and how on this subject, offering my own real life solution that you can implement right away, bringin…
As technology users and professionals, we’re always learning. Our universal interest in advancing our knowledge of the trade is unmatched by most industries. It’s a curiosity that makes sense, given the climate of change. Within that, there lies a…
This video shows how to set up a shell script to accept a positional parameter when called, pass that to a SQL script, accept the output from the statement back and then manipulate it in the Shell.
Via a live example combined with referencing Books Online, show some of the information that can be extracted from the Catalog Views in SQL Server.

856 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