我有一個zipcode存儲在文本字段(字符串),並希望只選擇我的select語句中的值的最後3位數字。這可能嗎?有沒有這樣做的標準方式,以便SQL可以跨數據庫互換?我會在生產環節上的Oracle使用它,但我對Interbase的測試(是的,是的,我知道,兩個完全差異的DB,但多數民衆贊成我在做什麼)SQL提取部分字符串
感謝您的幫助,您可以提供
我有一個zipcode存儲在文本字段(字符串),並希望只選擇我的select語句中的值的最後3位數字。這可能嗎?有沒有這樣做的標準方式,以便SQL可以跨數據庫互換?我會在生產環節上的Oracle使用它,但我對Interbase的測試(是的,是的,我知道,兩個完全差異的DB,但多數民衆贊成我在做什麼)SQL提取部分字符串
感謝您的幫助,您可以提供
假設郵編都具有相同的長度,你可以使用substr
。
如果它們不具有相同的長度,則必須使用strlen
函數執行類似的操作。
select substr(clients.lastname, 1, 10)
from clients
您聲明UDF這樣的:在lib_udf.dll
是這樣工作的
Interbase的沒有一個內置的子功能,但它確實有一個UDF
(用戶定義函數)稱爲SUBSTR
DECLARE EXTERNAL FUNCTION SUBSTR
CSTRING(80),
SMALLINT,
SMALLINT
RETURNS CSTRING(80) FREE_IT
ENTRY_POINT 'IB_UDF_substr' MODULE_NAME 'ib_udf';
甲骨文確實有一個內置的功能SUBSTR你使用這樣的:
select substr(clients.lastname, 1, 10)
from clients
- jeroen
這取決於您如何存儲郵政編碼。如果您僅使用5位數字 那麼這應該適用於Oracle,並且可能適用於Interbase。
select * from table where substr(zip,3,3) = '014'
如果存儲郵編+ 4和你想要的最後3位數字,有些是5位數字,有些是9位數字,你就必須做到以下幾點。可以在兩個數據庫更好地工作
select * from table where substr(zip,length(zip) -2,3) = '014'
,一個選項是
上使用相同代碼的子字符串/右命令,沒有where子句。每個記錄都有一個zip文件,因此,我需要每個文件的最後三個字符。還有一個可以在兩個數據庫中工作。感謝名單! – IElite 2011-02-17 19:44:58
沒有可以在Oracle和Interbase – RichardTheKiwi 2011-02-17 19:55:50