VII 07 2009

Podmínka v projekci u SQL příkazu

= The Expression in SQL projection (T-SQL)

Někdy je potřeba v projekci SQL dotazu SELECT zapsat podmínku např. pro zobrazování předvolby u zahraničních telefonních čísel. Původně jsem hledal nějaký ekvivalent iff v T-SQL, aby příkaz vypadal nějak takto:

SELECT [FirstName], [LastName], 
iff([Country] = "Slovakia", '+421' + [Phone], [Phone]) FROM Customers

Server při dotazu vrátil chybu

Server: Msg 170, Level 15, State 1, Line 5
Line 2: Incorrect syntax near '='.

Takže tudy cesta nevedla.

Při hledání funkčního, ekvivalentního řešení jsem narazil na následující konstrukci CASE-WHEN-THEN

SELECT 
 [FirstName], [LastName],
 CASE
    WHEN [Country]='Slovakia' 
     THEN '+421 ' + [Phone]
     ELSE [Phone]
     END AS Phone
FROM 
 Customers

která přesně pokrývá moje požadavky. Navíc ji lze rozšířit o více podmínek např. takovýmto způsobem:

SELECT [FirstName], [LastName],
   CASE [Country]
    WHEN 'Germany' 
     THEN '+49 ' + [Phone]
    WHEN 'Mexico'
     THEN '+625' + Phone
    WHEN 'Slavakia'
     THEN '+421 ' + Phone
     ELSE Phone
     END AS Phone
FROM 
 Customers

Ohodnoť příspěvek jako první

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
II 17 2009

Načtení obrázku do DB pomocí T-SQL

Obrázek jako binární data lze do databáze náhrát při úpravě řádku následujícícm způsobem:

 

		   1: UPDATE TableName
	
		   2: SET ImageColumn =
	
		   3:     (SELECT * FROM OPENROWSET(BULK 'd:\obr1.jpg', SINGLE_BLOB) AS x)
	
		   4: WHERE (ID = 1)
	

Odkazy:

http://msdn2.microsoft.com/en-us/library/ms177523.aspx

Ohodnoť příspěvek jako první

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5