當前位置:首頁 » 編程語言 » 把sql拆解

把sql拆解

發布時間: 2022-04-11 15:33:00

⑴ 如果要把資料庫文件從sql軟體里分離 出來應該是用什麼指令

打開SQL Server,點擊連接,進入SQL Server軟體中,在 需要分離的資料庫名稱 上右鍵-任務-分離。

⑵ 在SQL中如何把一列字元串拆分為多列,請高手

--首先,你是按什麼規則拆? 我舉個例子 你要按欄位中的逗號拆開,假設欄位名叫text--用charindex和substring這2個函數 select substring(text,1,charindex(',',text)-1) as [before], substring(text,charindex(',',text),len(text)) as [after] from table

⑶ 怎樣把SQL語句查詢完了的語句分解 例如這里 我得到的語句是2013-01,我想要取2013,SQL語句該怎麼寫

SUBSTRING(expression,start,length)
selectSUBSTRING('2013-01',1,4)

參考:http://msdn.microsoft.com/zh-cn/library/ms187748.aspx

⑷ SQL語句拆分表中內容,並變成兩列

if exists (select 1 from sysobjects where name = 'uf_get_value' and xtype = 'FN')
drop function uf_get_value
go
create function uf_get_value(@value VARCHAR(100))
--獲取列默認值
returns VARCHAR(100) as
begin
declare @rtn VARCHAR(100), @tmp VARCHAR(100), @status CHAR(1)

SET @rtn = ''
SET @tmp = ''
WHILE len(@value) > 0
BEGIN
IF ascii(substring(@value, 1, 1)) = ascii(',')
BEGIN
SET @value = RIGHT(@value, len(@value) - 1)
CONTINUE
END
IF ascii(substring(@value, 1, 1)) BETWEEN ascii('0') AND ascii('9')
BEGIN
SET @tmp = @tmp + substring(@value, 1, 1)
SET @status = 'N'
END
ELSE
BEGIN
SET @rtn = @rtn + substring(@value, 1, 1)
SET @status = 'S'
END
SET @value = RIGHT(@value, len(@value) - 1)
IF @value <> ''
BEGIN
IF @status = 'S' AND ascii(substring(@value, 1, 1)) BETWEEN ascii('0') AND ascii('9') SET @rtn = @rtn + ','
IF @status = 'N' AND NOT ascii(substring(@value, 1, 1)) BETWEEN ascii('0') AND ascii('9') SET @tmp = @tmp + ','
END
END
IF RIGHT(@rtn, 1) = ',' SET @rtn = LEFT(@rtn, len(@rtn) - 1)
SET @rtn = @rtn + '|' + @tmp
RETURN @rtn
END
go

--測試
--SELECT dbo.uf_get_value('A123,B23,BD21')

⑸ PL/SQL 拆解字元串語句

我提供一個拆分字元串的通用函數給你,你再寫這種SQL:
1、先建立一個包,定義數組類型:
CREATE OR REPLACE PACKAGE pkg_string is

-- Purpose : 字元串處理

-- Public type declarations
TYPE StringArray IS VARRAY(2000) OF VARCHAR2(2000);

END pkg_string;

2、拆分字元串的通用函數:
CREATE OR REPLACE FUNCTION fun_ParseToArray(
a_SourceString IN VARCHAR2, --源字元串
a_Delimiter IN VARCHAR2 --拆分的分隔符
) RETURN pkg_string.StringArray IS
-- ********************************************************
-- 根據分隔符拆分字元串為數組
-- ********************************************************
v_Result pkg_string.StringArray; --數組
iCount INTEGER;
iBegin INTEGER;
sValue VARCHAR2(2000);
sSplitString VARCHAR2(2000);
BEGIN
--檢查參數
IF a_SourceString IS NULL OR a_Delimiter IS NULL THEN
RETURN(v_Result);
END IF;
IF a_SourceString = '' THEN
RETURN(v_Result);
END IF;
--初始化數組
v_Result := pkg_string.StringArray();
--Only one entry was found
IF instr(a_SourceString,a_Delimiter) = 0 THEN
-- 數組加1維
v_Result.extend();
-- 將數據存入數組
v_Result(1) := a_SourceString;
RETURN(v_Result);
END IF;
iCount := 0;
sSplitString := a_SourceString;
LOOP
iBegin := INSTR(sSplitString,a_Delimiter);
EXIT WHEN iBegin < 1;
sValue := Substr(sSplitString,1,iBegin - 1);
sSplitString := SubStr(sSplitString,iBegin + 1);
-- 計數器加1
iCount := iCount + 1;
-- 數組加1維
v_Result.extend();
-- 將數據存入數組
v_Result(iCount) := sValue;
END LOOP;
--Set last entry
sSplitString := SubStr(sSplitString, iBegin);

--Update array and counter if necessary
IF Length(sSplitString) > 0 THEN
-- 計數器加1
iCount := iCount + 1;
-- 數組加1維
v_Result.extend();
-- 將數據存入數組
v_Result(iCount) := sSplitString;
END IF;

RETURN(v_Result);
EXCEPTION
WHEN others THEN
return v_Result ;
END fun_ParseToArray;

3、組成SQL
...
vs_row pkg_string.StringArray;
vs_column pkg_string.StringArray;
...
vs_row := fun_ParseToArray(你的一列數據,'#');
--再用for循環拆分vs_row的列:
vs_column(j) := fun_ParseToArray(vs_row(i),'|');
再把拆分出來的數據入表

⑹ sql語句太長,能否拆開執行

簡單的回答,到目前為止,沒有能支持SQL語句拼接的資料庫管理軟體,也應該沒這個必要。

下面是一些常識,有耐心可以看一下。

1、原則上,MS SQL SERVER對SQL條件語句的長度不作限制,起碼當前沒有人有實際的單條語句沒法執行完成的報道,應該幾千個字元以內的單條SQL語句都能正常的在MS SQL附帶的「SQL Server Management Studio」或「企業管理器」中執行,要不,你試試,也許你就是第一個發現問題的人。
2、如果是編程,使用某些編程軟體向SQL Server發送SQL語句的話,受限於編程環境下,字元串的長度或別的因素,可能會有某些不同,如果是那樣的話,最常見的做法是將多條SQL語句做成存儲過程,放在SQL Server資料庫中,程序只需要發送初始條件進行存儲過程的調用即可。
3、也就是說,復雜的SQL語句,絕大多數專業工程人員一般都不會用通過客戶端直接發向SQL 伺服器的方式去執行。如果只是臨時的要進行一些SQL資料庫的操作,也可以直接在SQL相應的管理工具中做。

⑺ 怎麼把這樣長的sql語句拆分為單條sql語句,這種語句是通過工具生成的還是手動拼出來的

SELECTu.userid,u.name,u.phone
fromhx_useru
LEFTJOIN(SELECT*
fromhx_userrest
WHEREuserrestdate='".$orderhead['serverdate']."')r
onu.userid!=r.userid
INNERJOIN(SELECTuserid
from(SELECTuserid,GROUP_CONCAT(infovaluename)user_info
fromhx_userattrGROUPBYuserid)a
INNERJOIN(SELECTGROUP_CONCAT('%',infovaluename,'%')order_info
fromhx_orderneedinfo
whereorderheadid=$orderheadidandinfokeyperson=2)b
ona.user_infoLIKEIFNULL(b.order_info,'%'))d
onu.userid=d.userid
INNERJOIN(SELECT*
fromhx_userproctclass
WHEREproctclassid=".$orderhead['proctclassid'].")f
onf.userid=u.userid
LEFTJOINhx_sendareasa
onu.userid=sa.userid
WHEREu.useridNOTin(SELECTou.userid
fromhx_servertimes1
INNERJOIN(SELECT*
fromhx_servertime
whereservertimevalue='".$orderhead['servertime']."')s2
ON(s1.ordernum=s2.ordernum-1)or(s1.ordernum=s2.ordernum+1)
INNERJOIN(SELECT*
fromhx_orderhead
whereserverdate='".$orderhead['serverdate']."')h
onh.servertime=s1.servertimevalue
INNERJOINhx_order_userou
onou.orderheadid=h.orderheadid)
ANDusertype=1
ORDERBYabs(fun_getdistance(".$orderhead['latitude'].",".$orderhead['longitude'].",sa.latitude,sa.longitude))ASC,levelDESClimit$limitStart,$pagesize

稍微整理了一下,拆分是不好拆分的,這段語句都是用的子查詢和連接查詢,操作的表比較多,至於你說的手動拼還是用工具這個就不清楚了

⑻ 如何將sql資料庫文件分割

利用軟體:「SQLDumpSplitter.exe」
將導出的數據備份文件切割,可以自定義每個文件的大小,這個軟體有一個好處是不會把每條記錄分開,保證了每條記錄的完整性,但是如果一個表中插入的數據較多,那麼會把插入操作分成好幾個,放在不同的小文件當中。
所以如果導入過程當中遇到 data node 參數需要改動的問題時,首先得刪除表記錄,再重新導,不免會出現重復記錄的情況。
SQLDumpSplitter在切割數據文件的同時會把資料庫表結構也獨立保存起來,方便進行資料庫初始化操作。

⑼ SQL如何把多條數據拆分

drop table test
create table test
(
VID int primary key,
VNum int,
vname varchar(10),
score int
)
insert into test values(1,001,'大海',20)
insert into test values(2,001,'大海',30)
insert into test values(3,001,'大海',40)

drop function fn_test
alter function fn_test
(
@vnum int
)
returns varchar(20)
as
begin
declare @str varchar(20)
select @str = isnull(@str+',','') + cast(score as varchar(2)) from test
return @str
end
go

select top 1 vid,vnum,vname,dbo.fn_test(vnum) as '分數' from test
/**
vid vnum vname 分數
----------- ----------- ---------- --------------------
1 1 大海 20,30,40

(所影響的行數為 1 行)
**/

可以了 呵呵呵呵呵

***********************************************************************************************這個是在SQL SERVER里執行的啊****************

⑽ 請問怎麼把sql里的表格的內容拆成2個

見圖

熱點內容
phplinux安裝配置 發布:2025-01-19 19:10:23 瀏覽:233
人才招聘系統php 發布:2025-01-19 19:10:22 瀏覽:586
大學資料庫題庫 發布:2025-01-19 19:00:27 瀏覽:572
樓下大門如何設置開門密碼 發布:2025-01-19 18:59:43 瀏覽:161
dns怎麼配置最優 發布:2025-01-19 18:59:42 瀏覽:518
車輛辦理解壓要收費怎麼處理 發布:2025-01-19 18:39:46 瀏覽:951
san存儲櫃 發布:2025-01-19 18:39:35 瀏覽:64
伏魔記安卓版怎麼什麼鍵都沒有 發布:2025-01-19 18:38:54 瀏覽:902
lol聲音文件夾 發布:2025-01-19 18:38:54 瀏覽:318
銳程cc尊貴版都有哪些配置 發布:2025-01-19 18:27:08 瀏覽:978