定義SQL使用者函式取單元格內值,如何用sql取excel表中某單元格的值

2022-03-13 18:48:44 字數 3135 閱讀 7096

1樓:

substring引數使用不正確,很明顯,錯誤也在提示你這個原因!

substring一共要三個引數,第乙個為要截的字元,第二個為字串擷取的起始位置,最後乙個為要擷取的長度!

很明顯你要擷取的字串是@content,

起始位置為@spaceindex1+len(@text1),

長度為@spaceindex2-@spaceindex1-len(@text1)

這幾個值你寫的都是正確的,但我們必須要考慮一些意外情況!

varchar與nvarchar兩者之間的區別!還有就是查詢不到的情況!比如你輸入的錯了乙個字元,那麼就會導致@spaceindex1與@spaceindex2都為0第乙個式子還好說,而第二個,也就是說長度會變為負值,而substring就會報錯!

所以我們不妨先測試一下@spaceindex2的值,若為0時,則直接讓其等於len(@content),這樣如果查不到由直接返回整個字串,當然如果是@spaceindex1不為0時,還可以照樣擷取.

另一種情況也是你程式中常出現的錯誤!

set @spaceindex2=charindex(@text2,@content)如果反過來了,也是得到的負值的.好在charindex支援第三個引數!

set @spaceindex2=charindex(@text2,@content,@spaceindex1+1)

這樣做的目的是保證@spaceindex2大於@spaceindex1,否則照出現錯誤!為了杜絕重複引起的錯誤,最好是

set @spaceindex2=charindex(@text2,@content,@spaceindex1+1+len(@text1))

這樣保證了@spaceindex2-len(@text1)也大於@spaceindex1

最後的那個varchar與nvarchar兩者的區別,建議你如果處理有中文最好用nvarchar,因為這兩個在統計長度是不至於出錯的!

我想你最終的程式,應該是好修改的吧?

2樓:匿名使用者

先做個判斷@content 是否含有@text1,@text2如果沒有直接返回''

if @spaceindex1=0 or @spaceindex2=0

begin

@return=''

endelse

begin

set @return=substring(@content,@spaceindex1+len(@text1),@spaceindex2-@spaceindex1-len(@text1))

endreturn @returnend

如何用sql取excel表中某單元格的值

3樓:小李無刀

用sql讀excel表,必須是資料庫列表形式存放的資料才行,在sql中,可以使用

select * from opendatasource( 'microsoft.jet.oledb.4.0',

'data source="c:\book1.xls";user id=admin;password=;extended properties=excel 5.

0')...[sheet1$] 這樣的**讀出所有的資料,然後你根據你需要要條件就能讀出資料了

4樓:

可以先用sql讀取excel資料,然後再找某單元格--sql讀取excel資料

select * from opendatasource( 'microsoft.jet.oledb.4.0',

'data source="c:\test.xls";user id=admin;password=;extended properties=excel 5.

0')...[sheet1$]

有合併的就不好做了

5樓:匿名使用者

可以用vba編寫程式來完成

如何用sql server 2005建立乙個使用者自定義函式,以學號和課程名稱為引數,返回該學生指定課程的學習成績

6樓:夜愛箐

create function func_getscore( @sno nvarchar(20), @coursename nvarchar(50) ) returns decimal(18,2) as begin declare @score decimal(18,2) select @score=score from tbl_sc as t1 inner join tbl_course as t2 on t1.cno=t2.cno where t1.

sno=@sno and t2.name=@coursename return @score end tbl_sc(sno,cno,score)為選課表 tbl_course(cno,name,....)為課程表

麻煩採納,謝謝!

sql中取某一列的最大值函式語句(字串形式)

7樓:匿名使用者

在sql資料庫中,最大/最小值函式—max()/min()是經常要用到的,下面就將為您分別介紹max()函式和min()函式的使用,供您參考,希望對您學習sql資料庫能有些幫助。

當需要了解一列中的最大值時,可以使用max()函式;同樣,當需要了解一列中的最小值時,可以使用min()函式。語法如下。

select max (column_name) / min (column_name)

from table_name

說明:列column_name中的資料可以是數值、字串或是日期時間資料型別。max()/min()函式將返回與被傳遞的列同一資料型別的單一值。

例項7 max()函式的使用

查詢teacher表中教師的最大年齡。例項**:

select max (age) as maxage

from teacher

sql中定義函式的格式是什麼?

8樓:追夢

create function name(@num int)

returns int

as begin

return(@num+1)end

excel自定義格式,excel單元格的六種自定義格式是哪些?

比如有如下一列 的資料,我們想統一都新增上單元 元.首先,我們批量選中需要調整格式的單元格,開啟設定單元格格式對話方塊,選中,最下方的自定義.在下圖我標紅的位置,輸入你想要的樣式.如果我們只是單純想加上單位,那我們就可以在型別下面輸入,佔位符0和單位,元.如下圖,注意 可以通過上方的例項檢視,是不是...

在EXCEL中,有哪個函式可以統計單元格的個數

count a a 統計 baia列數值單元格 du個zhi數 counta a a 統計a列非空單元dao格個數countblank a a 統計空白專單元格個數countif a a,abc 統計等於abc的單元格個數countifs a a,1 a a,90 統計大於屬1小於90的單元格個數 ...

ecelif函式某些單元格是空白的如何設定該些

回答您好,已e列資料為例,e列有資料的話顯示資料,無資料為空,如下 if e e,e e,提問但是不要左邊的資料,要的是右邊的資料,這個能選嗎就拿我畫的那個來說,左邊那個 的項比較準確,但是數值不準確,右邊 數值準確,但是項不準確 回答左邊右邊指的是在乙個單元格裡?提問對 回答您能詳細描述一下嗎?跟...