Ⅰ sql欄位分割問題
你的是2個問題先回答第一個:
select (left(欄位名,1)+left(right(欄位名,8),4)) as 欄位別名 from 表名
第二問題:
你可以另外再建一張表保存你查詢過後的ID,在編程的時候,寫個結構函數,在查詢的時候not掉你保存ID表的ID,同時執行insert你這次的查詢的ID到第二張表中。
Ⅱ SQL 切割字元串
問下你取日期,切割時間,為什麼需要來計數啊?
select count(*) from table where substr(time,0,8) and aaa='aaa' order by time;
解釋,截取time 欄位 從第一位起截取8位,也就是只截取年月日,
效果
time
2011-01-02
2011-02-22
Ⅲ SQL server拆分欄位的SQL語句
SQL語句中拆分欄位:
一、語句實現的是將sql表中某個特定的欄位按照欄位內容中的標志拆分成多個欄位。下面的實例是將classname欄位中的內容以「->」為分隔符拆分為兩個部分。
select
ID ,
ClassID = PARSENAME(replace(ClassName,'->' , '.'), 2) ,
StyleID = PARSENAME(replace(ClassName,'->' , '.'), 1)
from tb
二、拆分之前的表格式:
ID classname。
1、 吃嫩草->東湖二等分 。
2、 的年覅->從丁俊暉v剎。
3、 覺得->督促。
4 、和長度->陳代工廠 。
5、 督促vui->大合唱。
三、拆分後的表格式:
ID ClassID StyleID。
1 、吃嫩草 東湖二等分。
2 、的年覅 從丁俊暉v剎。
3 、覺得 督促。
4、和長度 陳代工廠。
5、 督促vui 大合唱。
四、同樣的方法,如果要分成三個、四個或者更多的欄位,只需要修改代碼第三四行的代碼,此方法僅限將某一欄位內的內容按照同一個分隔符拆分。
Ⅳ sql 把一個欄位分成多個欄位
方法和詳細的操作步驟如下:
1、第一步,新的PHP文件,見下圖,轉到下面的步驟。
Ⅳ sql 如何將一個欄位拆分成單個字元(如圖:)
可以用substring函數來處理:
select substring(StyleID,1,1) as StyleID_1,substring(StyleID,2,1) as StyleID_2,substring(StyleID,3,1) as StyleID_3,substring(StyleID,4,1) as StyleID_4,substring(StyleID,5,1) as StyleID_5 from 表
Ⅵ sql server將欄位拆分:內容如下
drop table zz_test
create table zz_test (id varchar(200) ,nr varchar(405))
insert zz_test
select '內容:', '1、直腸高 2、急性 3、陳舊 4、高血 5、結腸 6、慢性'
select a.id ,
nr=substring(a.nr,b.number,charindex(' ',a.nr+' ',b.number)-b.number)
from zz_test a
join master..spt_values b on b.type='P'
where charindex(' ',' '+a.nr,b.number)=b.number
運行結果:
可以拆分的前提是你存儲必須是有規律的,否則拆分不出來。比如這個:中間我用一個空格來隔開的。
Ⅶ sql 如何以逗號為分隔符分割一個欄位的值
可用substring函數。
創建測試表及數據:
createtabletest
(idvarchar(10));
insertintotestvalues('123abc');
insertintotestvalues('456def');
insertintotestvalues('789ghi');
執行:
selectsubstring(id,1,3)+','+substring(id,4,3)asidfromtest
結果截圖:
也就顯示成了用逗號分隔的樣子。
Ⅷ 在線急求一sql分割欄位 存儲過程
--首先建表
create table B
(
u_no int identity(1,1),
c_no varchar(20)
)
create table A
(
u_no int,
c_no varchar(20)
)
insert into B
select '1:3:5'
insert into B
select '4:9:6'
insert into B
select '8:2:5'
insert into B
select '2:6:7'
insert into B
select '3:5:9'
--其次建立切割字元串的函數
CREATE function [dbo].[SplitString]
(
@Input nvarchar(max),
@Separator nvarchar(max)=',',
@RemoveEmptyEntries bit=1
)
returns @TABLE table
(
[Id] int identity(1,1),
[Value] nvarchar(max)
)
as
begin
declare @Index int, @Entry nvarchar(max)
set @Index = charindex(@Separator,@Input)
while (@Index>0)
begin
set @Entry=ltrim(rtrim(substring(@Input, 1, @Index-1)))
if (@RemoveEmptyEntries=0) or (@RemoveEmptyEntries=1 and @Entry<>'')
begin
insert into @TABLE([Value]) Values(@Entry)
end
set @Input = substring(@Input, @Index+datalength(@Separator)/2, len(@Input))
set @Index = charindex(@Separator, @Input)
end
set @Entry=ltrim(rtrim(@Input))
if (@RemoveEmptyEntries=0) or (@RemoveEmptyEntries=1 and @Entry<>'')
begin
insert into @TABLE([Value]) Values(@Entry)
end
return
end
--最後建立存儲過程
create proc test
as
begin
declare @u_no int ,@c_no varchar(20)
DECLARE cur_Hour1 CURSOR FOR
select * from B
OPEN cur_Hour1
FETCH NEXT FROM cur_Hour1 INTO @u_no,@c_no
WHILE (@@FETCH_STATUS=0)
BEGIN
insert into A
select @u_no,[Value] from [dbo].[SplitString](@c_no, ':', 1)
FETCH NEXT FROM cur_Hour1 INTO @u_no,@c_no
END
CLOSE cur_Hour1
DEALLOCATE cur_Hour1
end