『壹』 sql判斷字元是否在字元串中,字元串用,隔開,要循環判斷的
你是想判斷欄位MName中包含幾個aa字元吧?
如果是的話比較簡單的方法是將aa去掉,然後根據去掉aa後的長度比原來長度少幾位就能判斷凳枝去掉了幾個aa,從而知道包含幾個aa。
如下
select (len(replace(MName,' ','#'))-len(replace(replace(MName ,' ','#'),'aa','')))/2 as 數量
from tablename
查詢語句里將空格替螞胡換為#,是為了防止當欄位後邊包棗物敏含空格時影響計算的准確性。
『貳』 SQL語句實現拆分帶間隔符號的欄位
如果ID和內容是以空格分隔的,那麼就這么寫
select
left(m_content,charindex('
',m_content)-1)
as
ID,stuff(m_content,1,charindex('
',m_content),'')
as
content
from
表
當然,如果記錄中有不完全按照id+空格+內容這樣的,語句可能會有問題。
「向substring函數傳遞了無效的length參數」正是因為m_content中包含不符合櫻察"id+空格+內容"的數山頌胡據
你可以用
select
*
from
表
where
m_content
not
like
'%
%'
or
m_content
is
null
來找出這樣的行。
另外我給你的語句是讓你逗攔做參考的,你首先知道用到的函數是什麼意思才可以。
『叄』 SQL 把查詢到的一列數據用逗號隔開連城字元串要怎麼寫
USE [db01]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
create PROCEDURE [dbo].[P_公共_單列值轉多行]
@tb_from nvarchar(255), --源表
@tb_to nvarchar(255), --臨時存放表,臨時表和源表都要有以下兩個欄位:主欄位,分列段
@zhu_lie nvarchar(255), --主欄位名,如ID,
@feng_lie nvarchar(255) --要分列的列名,如「姓名」
AS
BEGIN
SET NOCOUNT ON;
declare @zhu_value nvarchar(255) --主列數值
declare @feng_value nvarchar(500) --分列數值
declare @sql nvarchar(500) --sql語句
declare @wei1 as integer --記錄第一個分號位置
declare @wei2 as integer --記錄第二個分號位置
exec ('declare mycursor cursor for (select ' + @zhu_lie + ', '+ @feng_lie +' from ' + @tb_from + ')')
open mycursor
fetch next from mycursor into @zhu_value,@feng_value
while @@fetch_status = 0
begin
set @wei1 = 1
set @wei2 = 1
while @wei2 > 0
begin
set @wei2 = charindex(';',@feng_value,@wei1)
set @sql = ''
if @wei2 =0
begin
set @sql = 'insert into '+@tb_to+'('+@zhu_lie+','+@feng_lie +') values ('''+@zhu_value+''' ,'''+substring(@feng_value,@wei1,len(@feng_value))+''')'
exec(@sql)
end
else
begin
set @sql = 'insert into '+@tb_to+'('+@zhu_lie+','+@feng_lie +') values ('''+@zhu_value+''' ,'''+substring(@feng_value,@wei1,@wei2-@wei1)+''')'
exec(@sql)
set @wei1= @wei2 + 1
end
end
fetch next from mycursor into @zhu_value,@feng_value
end
close mycursor
deallocate mycursor
END
『肆』 在SQL SERVER中將查詢出來的結果(1/1/1900 0:00)用 空格代替. (注意:不是在ACCESS中)
select case date when '' then '' else date end from 表
『伍』 sql語句 將數據從一張表讀出來並從空格截斷 放入另外一張表的2個欄位中
insert into 表2(長欄位,短欄位)
select
case when len(left(字蔽枝段名,charindex(' ',字茄尺段名顫並高)-1))>=len(right(len(欄位名)-charindex(' ',欄位名))) then left(欄位名,charindex(' ',欄位名)-1) else right(len(欄位名)-charindex(' ',欄位名)) end,
case when len(left(欄位名,charindex(' ',欄位名)-1))>=len(right(len(欄位名)-charindex(' ',欄位名))) then right(len(欄位名)-charindex(' ',欄位名)) else left(欄位名,charindex(' ',欄位名)-1) end
from 表1
『陸』 sql 2008 怎麼查詢指定帶空格的數據 比如:要查的值是 張 三 張三中間的空格要怎麼表示
select *from table1 where 欄位 like'%張虧手%' 這么查
簡單的寫法就畢賣是 直接更新
UPDATE able1 SET 列手空逗名稱 = 李四 WHERE 欄位=『張三』
查詢更新!
UPDATE table1 alias
SET (column_name,column_name ) = (
SELECT (column_name, column_name)
FROM table2
WHERE column_name = alias.column_name)
WHERE column_name = VALUE
『柒』 我要根據這兩個或多個商品同時來查詢,在中間以空格來分隔查詢得關鍵字,這sql語句該怎麼寫
在你的where子句中使用資料庫函數
Charindex(「 」+搜索表達式+" "," "+要搜索的表達式+" ",0)>=0
就是在" 康師傅 可口可樂 "中搜索" 康師傅 "返回為0
也可以用Patindex()函數,這個函數支持正則表達式
以上是SQLServer2005/2008的做法
『捌』 SQL中使用select查詢時如何對要搜尋的關鍵字加空格
select * from tb where name like '空格$name空格 '
SELECT * FROM tbWHERE NAME LIKE '_$name_'頃運或者
select * from tb where name like '% $name %' 或者
正則表達式 來頃乎衡寫雀做SQL
『玖』 SQL關於查詢數據裡面有空格和大小寫之分的問題
你可以用LOWER
或
UPPER
將它們統一成小寫或者大寫再比較
然後用LTRIM
和
RTRIM
去掉左右兩邊的空格
如果是中間有空格,我就沒辦法了……
一下是查的幫助
你可以用就是用什麼都沒有,替換掉空格
REPLACE(
'string_expression1'
,
'
'
,
''
)
寫出來應該是這樣
REPLACE(
'lower(id)'
,
'
'
,
''
)
REPLACE
(
'string_expression1'
,
'string_expression2'
,
'string_expression3'
)
參數
'string_expression1'
待搜索的字元串表達式。string_expression1
可以是字元數據或二進制數據。
'string_expression2'
待查找的字元串表達式。string_expression2
可以是字元數據或二進制數據。
'string_expression3'
替換用的字元串表達式。string_expression3
可以是字元數據或二進制數據。
返回類型
如果
string_expression(1、2
或
3)是支持的字元數據類型之一,則返回字元數據。如果
string_expression(1、2
或
3)是支持的
binary
數據類型之一,則返回二進制數據。
示例
下例用
xxx
替換
abcdefghi
中的字元串
cde。
SELECT
REPLACE('abcdefghicde','cde','xxx')
GO
下面是結果集:
------------
abxxxfghixxx
(1
row(s)
affected)
『拾』 sql用存儲過程查詢出來的數據會有空格,怎麼處理
在查詢語句中用rtrim()去調右邊的空格,或者在程序中處理,一般可以在程序中處理。