webForumDet fria alternativet

Tsql

4 svar · 227 visningar · startad av yohpops

yohpopsMedlem sedan feb. 20011 102 inlägg
#1

:q

Hej.

Jag har en fråga angående T-sql.

Går det på något sett att hämta ett värde från en stored procedure i en select sats?

Vi har en telefonbok på vårt intranät som hämtar data från våran telefonväxel som i grunden är en Microsoft SQL Server.

Det knepiga är att telefonnumrena inte är speciellt bra formaterade.
Det finns kortnummer och långa nummer med 2 nollor i början osv.
Jag har skapat en SP som fixar till numrena men jag kan inte komma på hur jag ska använda den i en vy.

Nån som vet?

Ex på vy.

SELECT DISTINCT
sub.recID AS recid, sub.first_name + ' ' + sub.last_name AS Namn, sub.honorary, (exec fixanummer sub.primary_extension) AS telefon1, dep.name AS dep_name,
sub.picture_resid AS Picture, cfemail.[value] AS email, cfmobil.[value] AS mobil,
cfplats.[value] AS plats,
(SELECT divr.dna_description + ' ' + CONVERT(varchar(30), div.end_time, 120) AS Refers
FROMdiversion AS div, extension AS ext, divr AS divr
WHEREdiv.is_diverted_recID = ext.recID AND div.status = 1 AND ext.directory_number = sub.primary_extension AND
divr.nodeID = ext.nodeID AND divr.dna_reason_code = div.reason_code) AS refers
FROM dbo.subscriber sub INNER JOIN
dbo.department dep ON sub.main_department_recID = dep.recID LEFT OUTER JOIN
dbo.char_fields cfemail ON sub.udf7_recID = cfemail.recID LEFT OUTER JOIN
dbo.char_fields cfuserid ON sub.udf6_recID = cfuserid.recID LEFT OUTER JOIN
dbo.char_fields cfmobil ON sub.udf5_recID = cfmobil.recID LEFT OUTER JOIN
dbo.char_fields cfanstnr ON sub.udf4_recID = cfanstnr.recID LEFT OUTER JOIN
dbo.char_fields cfkostnad ON sub.udf3_recID = cfkostnad.recID LEFT OUTER JOIN
dbo.char_fields cfplats ON sub.udf2_recID = cfplats.recID LEFT OUTER JOIN
dbo.char_fields cforg ON sub.udf1_recID = cforg.recID LEFT OUTER JOIN
dbo.extension ext ON sub.recID = ext.primary_user_recID

LarsGMedlem sedan dec. 200012 465 inlägg
#2

Det går inte att anropa en procedur i en selectsats. Om du har MSSQL 2000 så kan du skriva en funktion istället.

yohpopsMedlem sedan feb. 20011 102 inlägg
#3

Går det att använda en function på samma sätt som en vy då?

LarsGMedlem sedan dec. 200012 465 inlägg
#4

En funktion kan du använda var som helst i ett sql-statement.

create function fixanummer (@c varchar(30)) returns varchar(30)
as
...

select fixanummer(c) from t
yohpopsMedlem sedan feb. 20011 102 inlägg
#5

Ok.

Tack för det.
:birp

Genererad på 382 ms · cache AV · v20260730165559-full.f96bc7eb