sql語句寫法- 這個sql語句怎么寫 謝謝
如果要用一條語句查出來還是很麻煩的,上面兩個肯定不對。
select *,*um,(*um - *m) as arrivNum from table1 left outer join ( select count(*) as occuNum,roomID from table2 groupby roomID) as tem on * = * 試一下吧,肯定可用,existNum = 可住人數。
如何寫sql語句
沒情況沒法測試僅供給思路思路:用游標經由過程體系表每次取一個字段update表a數據一次將其它字段update成和該字段一樣的值DECLARE @fieldname varchar(200)DECLARE test CURSOR FOR select * from syscolumns ajoin sysobjects b on *=*e *='a' and *1--游標遍歷體系表查出a表所有字段,去掉落第一個字段OPEN testFETCH NEXT FROM test into @fieldnameWHILE @@FETCH_STATUS = 0BEGINupdate a set a.屬性1=b.@fieldname,a.屬性2=b.@fieldname,a.屬性n=b.@fieldnamefrom a a join a b on a.名稱=b.名稱where b.@fieldname is not null--這里可以改成經由過程體系條查出的字段名稱拼成sql如許就通用了不管該表若干個字段也不消改sql了,時光關系我不寫了.endCLOSE testDEALLOCATE test履行完后所有的屬性字段的值都是一樣的隨便取哪個字段都是你要的成果留意這段sql有前提限制名稱字段必須是該表的的第一個字段假如不是的話把colid的值改成精確的。
sql語句怎么寫
你可以參照下面的來動態寫SQL語句
假設有張學生成績表(tb)如下:姓名 課程 分數張三 語文 74張三 數學 83張三 物理 93李四 語文 74李四 數學 84李四 物理 94想變成(得到如下結果): 姓名 語文 數學 物理 李四 74 84 94張三 74 83 93create table tb(姓名 varchar(10) , 課程 varchar(10) , 分數 int)insert into tb values('張三' , '語文' , 74)insert into tb values('張三' , '數學' , 83)insert into tb values('張三' , '物理' , 93)insert into tb values('李四' , '語文' , 74)insert into tb values('李四' , '數學' , 84)insert into tb values('李四' , '物理' , 94)go--SQL SERVER 2005 靜態SQL的寫法
select * from (select * from tb) a pivot (max(分數) for 課程 in (語文,數學,物理)) b--SQL SERVER 2005 動態SQL。declare @sql varchar(8000)select @sql = isnull(@sql + '],[' , '') + 課程 from tb group by 課程set @sql = '[' + @sql + ']'exec ('select * from (select * from tb) a pivot (max(分數) for 課程 in (' + @sql + ')) b')
請教這種SQL語句如何寫
給你一個實例: select * ,* from a,b where * match * 這個sql語句不標準,informix支持, select * ,* from a,b where STRCMP(*, *) > -1 這是mysql的語法,其他數據庫不支持 select * ,* from a,b where INSTR(*,*)>0 這是oracle的語法,其他不支持。
SQL語句 包含怎么寫
如下:
StrSql="select * from Table where ID like '%1%'"
備注:
========================================================================
Like 運算符
比較字符串表達式和 SQL 表達式中的模式。
語法
expression Like "pattern"
運算符 Like 的語法包含下列部分:
部分 說明
expression 用于 WHERE 子句的 SQL 表達式
Pattern 表達式與之比較的字符串或字符串文本。
說明
可用 Like 運算符來找出符合指定樣式的字段值。對于 pattern,可以指定完整的值(例如,Like "Smith"),或用通配符來找出一數值范圍(例如,Like "Sm*")。
在一表達式中,可用 Like 運算符比較字段值和字符串表達式。例如,如果在 SQL 查詢中輸入 Like "C*",則查詢會返回所有字段中以字母 C 開頭的值。 在參數查詢 中,可以提示用戶提供要搜尋的樣式。
在下面的例子里,會返回以字母 P 開頭、而其后接著介于 A 到 F 之間的任何字母和三個數字的數據:
Like "P[A-F]###"
在下面的列表中說明如何使用 Like 運算符來測試不同樣式的表達式。
符合的種類
樣式 符合(返回 True ) 不符合(返回 False )
多個字符 a*a aa,aBa,aBBBa aBC
*ab* abc,AABB,Xab aZb,bac
特殊字符 a[*]a a*a aaa
多個字符 ab* abcdefg,abc cab,aab
單一字符 a?a aaa,a3a,aBa aBBBa
單一數字 a#a a0a,a1a,a2a aaa,a10a
字符范圍 [a-z] f,p,j 2, &
范圍之外 [!a-z] 9, &, % b,a
非數字 [!0-9] A,a,&,~ 0, 1, 9
組合字 a[!b-m]# An9,az0,a99 abc,aj0
SQL語句怎么寫
分析:先在table1里計算A類貨品的總進貨量,sum(批次進貨量)
select sum(批次進貨量) as 'A類進貨量' from table 1 where 類別='A'
然后再table2里計算A類貨品的總出貨量,sum(批次出貨量)
select sum(批次出貨量) as 'A類出貨量' from table 2 where 類別='A'
這樣庫存=sum(批次進貨量)-sum(批次出貨量)
sql語句:
declare @sum_in @int,@sum_out @int,@sum_now int
select @sum_in=sum(批次進貨量) as 'A類進貨量' from table 1 where 類別='A'
select @sum_out=sum(批次出貨量) as 'A類出貨量' from table 2 where 類別='A'
select @sum_now=@sum_in-@sum_out as 'A類庫存'合成:
select A類庫存 from ((select sum(批次進貨量) from table1 where 類別='A')-(select sum(批次出貨量) from table2 where 類別='A') as 'A類庫存')這樣就完成了,原理如是,不保證可直接運行成功。同理,B類貨品也可按此步驟進行計算
改進:將分析語句寫成存儲過程。也可將分析步驟寫成VIEW。另外進貨出貨需要頻繁修改庫存,可使用觸發器。
經驗:此類實際問題表的設計不是很合理。由于庫存信息頻繁的被用到,庫存又屬于派生類屬性,所以有必要犧牲數據冗余,直接將庫存作為表的一個列名。用的時候直接選取數據信息。