iT邦幫忙

0

java StringBuffer

  • 分享至 

  • xImage

要怎麼在StringBuffer內sql case語法加入引號?
StringBuffer sb = new StringBuffer("select case sex when 1 then '男生' when 0 then '女生' end");
如果把 '男生'改成1 ,'女生'改成0 這樣可以執行。
如果把 '男生'改成'boy' ,'女生'改成'girl'這樣不可以執行。
錯誤訊息:
Cannot determine value type from string '男生'

https://blog.csdn.net/u012581020/article/details/114673959
sibulun iT邦新手 5 級 ‧ 2022-08-10 10:18:40 檢舉
我犯了錯 ,裝資料的物件sex宣告成int 所以文字類型放不進 ,sql沒問題
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
孤獨一隻雞
iT邦研究生 5 級 ‧ 2022-08-09 18:46:05

你是不是少了FROM XXXTable

0
Luke
iT邦研究生 5 級 ‧ 2022-08-10 13:32:29

『Cannot determine value type from string '男生'』
錯誤的問題是,您將『sex』欄位型態 int 要改成 string 型態

您是hibernater接?還是 spring 接?
您要在 SQL 執行時,處理掉?還是JAVA bean那邊程式處理掉?

SQL 沒有完整 無法幫您處理

『sql case語法加入引號?』沒有關係

DECLARE @TMP_EMP AS TABLE
(
   EMP_NO VARCHAR(10),
   SEX_1  INT,
   SEX_CHAR  CHAR(1)
);
INSERT INTO @TMP_EMP (EMP_NO,SEX_1,SEX_CHAR) VALUES ('01',1,'1');
INSERT INTO @TMP_EMP (EMP_NO,SEX_1,SEX_CHAR) VALUES ('02',0,'0');
INSERT INTO @TMP_EMP (EMP_NO,SEX_1,SEX_CHAR) VALUES ('03',0,'0');
INSERT INTO @TMP_EMP (EMP_NO,SEX_1,SEX_CHAR) VALUES ('04',1,'1');
INSERT INTO @TMP_EMP (EMP_NO,SEX_1,SEX_CHAR) VALUES ('05',0,'0');
select case SEX_1 when 1 then '男生' when 0 then '女生' end AS[結果_VARCHAR],
       case SEX_CHAR when '1' then 1 when '0' then 2 end AS[結果_INT],
*
FROM @TMP_EMP
0
DavidLan
iT邦新手 5 級 ‧ 2022-09-22 17:07:37

Cannot determine value type from string '男生'
代表宣告的變數型態與值的資料型態不合

我要發表回答

立即登入回答