簡體   English   中英

使用FUNCTION的sql select語句,而無需訪問.Net中的SQL DB

[英]sql select statement using a FUNCTION without access to the SQL DB in .Net

我有一個僅具有讀取者權限的SQL DB,因此我無法添加我唯一存儲的proc或函數,並且我正在尋找一種無需獲得管理員權限即可完成任務的方法(該軟件僅對開發人員具有讀取者權限,允許完全訪問權限,這就是為什么我正在尋找另一種方式)

我有一張要從中提取記錄的表,但是要執行此操作,需要對字段進行一些計算以得出長度。

.NET或使用我可以運行的SQL腳本文件來實現這一目標的方法? 不知道我是否需要全力以赴以獲得所需的結果-創建一個臨時表-從表中插入到臨時表字段中,並且計算出的值-WHERE計算出的值小於100

(現在我可以使用CREATE語句來做到這一點,但這不好,如上所述,沒有數據庫訪問權限來創建任何東西。因此,它需要某種不能同時執行選擇和功能的動態代碼)

這是我正在鍵入以在.Net代碼中工作的SQL代碼示例

BEGIN
CREATE TABLE #Listings
(
AddressID varchar(50), Street varchar(50), City varchar(50), State varchar(50), 
    Zip varchar(50), ZipCalculatedValue Decimal(18,12)
)
INSERT INTO #Listings (AddressID, Street, City, State, Zip, ZipCalculatedValue)
SELECT AddressID, Street, City, State, Zip, Name, bo.CalcZip(@ZIP) AS ZipCalculatedValue
FROM tbl_Addresses
WHERE dbo.dbo.CalcZip(@ZIP) <= @maxZIP
ORDER BY Distance ASC

SELECT * 
FROM #Listings

和功能看起來像

  DECLARE @ZIP FLOAT

  SET @ZIPCalc = (@ZIP - 1000) --more code but removed to simplify

  SET @ZIPCalc = (@ZIPCalc * 10) --result above more workings removed

  RETURN @ZIPCalc

所以在.Net中,我可以連接到數據庫並獲取結果,但是關於如何將功能與SELECT語句一起使用來獲取結果的任何想法嗎?

謝謝

使用通用表表達式來計算值。

WITH AddressWithCalc AS
(
    SELECT AddressID, Street, City, State, Zip,
        ((@ZIP - 1000) * 10) AS ZipCalculatedValue
    FROM dbo.tbl_Addresses
)
INSERT INTO #Listings (AddressID, Street, City, State, Zip, ZipCalculatedValue)
SELECT *
FROM AddressWithCalc
WHERE ZipCalculatedValue <= @maxZIP
ORDER BY Distance ASC

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM